我不明白为什么会收到错误:
java.util.NoSuchElementException null(在 java.util.Scanner 中)
用我的方法:
public void processTransactions(Scanner transFile){
while (transFile.hasNext()){
for(i = 0; i < ids.length; i++){
finalInventory[i] = startingInventory[i];
if(ids[i] == transFile.next()){
finalInventory[i] += transFile.nextInt();
}
}
}
}
这是我的构造器:
public SoftDrinkInventory(Scanner inventoryFile) {
initializeString(names);
initializeString(ids);
initializeInt(startingInventory);
initializeInt(finalInventory);
initializeInt(transactionCounts);
while (inventoryFile.hasNext()){
names[i] = inventoryFile.next();
ids[i] = inventoryFile.next();
startingInventory[i] = inventoryFile.nextInt();
i++;
}
}
所有变量都已在类中先前声明。
最佳答案
我猜测了一点,但我认为你的代码应该是这样的。
public void processTransactions(Scanner transFile){
while (transFile.hasNext()){
String key = transFile.next();
int value = transFile.nextInt();
for(i = 0; i < ids.length; i++){
finalInventory[i] = startingInventory[i];
if(ids[i].equals(key)){
finalInventory[i] += value;
}
}
}
}
每次 while
循环迭代时,您只想执行一次 next()
和 nextInt()
。目前,您在 for
循环的每次迭代中重复 next()
,这确实不是您想要的。
请注意,这不是解决您的问题的最有效的解决方案,但它会消除您的错误。
此外,您还没有指定 ids
的类型,但我假设它是 String[]
。
关于java - for循环和if语句发生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22086660/