gpt4 book ai didi

java - for循环和if语句发生错误

转载 作者:行者123 更新时间:2023-12-01 23:10:36 25 4
gpt4 key购买 nike

我不明白为什么会收到错误:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com