有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何创建一个计算一组数字之和的程序(Java)?

我正在从MOOC学习Java,我被困在这个练习中:

Exercise

这个真的很麻烦。我能够创建一个程序,计算用户选择的数字(如下所示),但仍停留在如何将所有数字添加到变量n

public static void main(String[] args) {
    Scanner reader = new Scanner(System.in);

    int start = 0;

    System.out.println("Until which number? ");
    int n = Integer.parseInt(reader.nextLine());

    System.out.println("Counting begins now...");

    while (start <= (n - 1)) {
        System.out.println(start += 1);
    }

}

感谢您的帮助


共 (2) 个答案

  1. # 1 楼答案

    在正确的轨道上,首先使用print而不是println在同一行上获取输入(如任务的预期输出)

    然后基本上只需跟踪两个“helper”变量countsum,并且只在while循环外打印变量sum的值一次:

    import java.util.Scanner;
    
    class Main {
      public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
    
        System.out.print("Until what?");
        int n = scanner.nextInt();
    
        int count = 0;
        int sum = 0;
        while(count <= n) {
          sum += count; // increment the sum variable by the value of count
          count++; // increment the count variable by 1
        }
    
        System.out.println("Sum is " + sum);
      }
    }
    

    N.B.同样在上面,我使用了Scanner方法nextInt()而不是您的Integer.parseInt解决方案,将来您可能希望将其与返回布尔值的hasNextInt()配对,以确保如果用户输入的不是整数,您的程序不会崩溃

    示例用法1:

    Until what? 3
    Sum is 6
    

    示例用法2:

    Until what? 7
    Sum is 28
    

    试试看here!

  2. # 2 楼答案

    int sum = 0;
    
    while (start <= n) {
        sum += start;
        ++start;
    }
    
    System.out.println(sum);
    

    根据您的指导原则,您需要记录迭代次数start,并且需要计算存储在其自身变量sum中的总和

    start需要增加每次迭代

    sum需要是它的前一个值加上start的当前值