【问题标题】:Continously sum user inputs - JAVA不断总结用户输入 - JAVA
【发布时间】:2020-05-09 21:18:31
【问题描述】:

需要帮助将连续的用户输入求和,直到输入 0。已经很接近了。只需要知道我错过了什么。 以下是代码

import java.util.Scanner;

public class Task3 {

    public static void main(String[] args) {
        while (true) {
            Scanner in = new Scanner(System.in);
            System.out.println("Enter a number");
            int number = in.nextInt();
            if (number == 0) {
                System.out.println("Okay thanks!");
                break;
            } else {
                System.out.println("The current answer is :" + number);
            }
        }

    }

}

【问题讨论】:

  • 欢迎来到 StackOverflow。请不要发布代码图像。在此处粘贴您的代码。
  • 在while循环之前创建一个变量并添加进去。 PS,将 elseif 重构为 else 因为非 0 的数字总是 !=0

标签: java loops while-loop sum


【解决方案1】:

解决代码中的以下问题:

  1. 绝对不能在循环中实例化Scanner
  2. 您需要一个变量,例如sum 存储数字的运行总和。

按如下方式进行:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int sum = 0;
        while (true) {
            System.out.print("Enter a number (0 to quit): ");
            int number = in.nextInt();
            if (number == 0) {
                System.out.println("Okay thanks!");
                break;
            }
            sum += number;
        }
        System.out.println("Sum of numbers = " + sum);
    }
}

示例运行:

Enter a number (0 to quit): 10
Enter a number (0 to quit): 20
Enter a number (0 to quit): 30
Enter a number (0 to quit): 0
Okay thanks!
Sum of numbers = 60

【讨论】:

  • 是的,最后一个答案具有正确的变量位置/范围
  • 感谢@ScaryWombat 的鼓励。
【解决方案2】:

在输入数字时声明一个变量并求和。 以下代码和内联注释可能会有所帮助。

import java.util.Scanner;

public class Task3 {

    public static void main(String[] args) {
        int sum=0;
        Scanner in = new Scanner(System.in);
        int number;
        while (true) {          
            System.out.println("Enter a number");
             number= in.nextInt();
            if (number == 0) {
                System.out.println("Okay thanks!");
                break;
            } else {
                sum=sum+number;
                System.out.println("The current answer is :" + sum);
            }
        }

    }

}


【讨论】:

  • 您不想为循环的每次迭代重新声明Scanner
【解决方案3】:

更多优化代码: 导入 java.util.Scanner;

public class Task3 {

    public static void main(String[] args) {
        int sum = 0, number = 0;
        Scanner in = new Scanner(System.in);
        do {
            System.out.println("Enter a number");
            number = in.nextInt();
            sum = sum + number;
        } while (number != 0);
        System.out.println("The current answer is :" + sum);
    }

} 

【讨论】:

    猜你喜欢
    • 2022-09-24
    • 2017-09-11
    • 2018-03-17
    • 1970-01-01
    • 2011-04-26
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多