为什么while循环条件不能停止循环?

时间:2020-09-11 03:43:07

标签: java arraylist while-loop

System.out.println("Please enter your grades: ");    

while(scanner.nextInt() != -1){
            numbers.add(scanner.nextInt());
        }

我有一个while循环,一旦用户输入“ -1”,该循环应该停止。而是在识别之前将“ -1”插入到我的arraylist中。我想了解为什么循环在检测到“ -1”后不会立即停止。

2 个答案:

答案 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);
}