请问对此问题有什么建议的解决方案?当用户输入-1时,这将包括在总数中,这不是我们想要的。我正在尝试不使用if控件结构来执行此操作。

    int numberToAdd = 0, total = 0;
    Scanner input = new Scanner(System.in);

    while (numberToAdd != -1) {
        System.out.println("Number to add? -1 to quit");
        numberToAdd = input.nextInt();
        total = total + numberToAdd;
    }
    System.out.println("Total: = " + total);


我知道我可以改用字符串并使用退出代码(即字符串),同时将String输入解析为整数,但是我尝试使用整数(在这种情况下为-1)来实现。

谢谢

最佳答案

如果在循环之前读取了第一个输入,则无需if语句就可以实现所需的目标:

System.out.println("Number to add? -1 to quit");
numberToAdd = input.nextInt();
while (numberToAdd != -1) {
    total = total + numberToAdd;
    System.out.println("Number to add? -1 to quit");
    numberToAdd = input.nextInt();
}


这是使代码更短的一种方法:

System.out.println("Number to add? -1 to quit");
while ((numberToAdd = input.nextInt()) != -1) {
    total = total + numberToAdd;
    System.out.println("Number to add? -1 to quit");
}

10-01 20:30