System.out.println("Please enter your grades: ");
while(scanner.nextInt() != -1){
numbers.add(scanner.nextInt());
}
我有一个while循环,一旦用户输入“ -1”,该循环应该停止。而是在识别之前将“ -1”插入到我的arraylist中。我想了解为什么循环在检测到“ -1”后不会立即停止。
答案 0 :(得分:2)
您两次调用nextInt
,并且每次都返回一个新的int。试试这个:
while(true){
int val = scanner.nextInt();
if (val == -1) {
break;
}
numbers.add(val);
}
答案 1 :(得分:0)
实际上,您在每个循环中输入两次,因为scanner.nextInt()
在while循环中的两个位置被调用。只需一次调用它,然后在每一轮中保存键入的值。下面的代码正是您想要的:
int nextInt;
while((nextInt = scanner.nextInt())!= -1){
numbers.add(nextInt);
}