如何将用户输入(使用扫描仪)集成到while循环中以计算1 + 2 + 3 + .... n其中n是任何正整数?

时间:2018-06-13 06:55:31

标签: java

我在解决第1b部分问题时遇到了麻烦。

1a上。编写一个名为CountLoop.java的程序,它包含一个带有循环的main方法,该循环将计算并打印1到100之间所有整数的总和。执行程序以验证输出是否正确。“

public class CountLoop{
   public static void main(String[] args){
       int sum = 0; 
       int i = 0;       // i is 0 Here

       while (i<=100) {
        sum += i; 
        i++;
    }
    System.out.println("The sum is " + sum);
 }
}

1b中。程序运行后,重构它以便计算1 + 2 + ... + n,其中n是任何正整数。换句话说,修改后的程序应该提示用户输入一个数字,读取用户输入,计算从1到输入值的整数之和,然后输出总和。

    import java.util.Scanner;
    public class CountLoop{
        public static void main(String[] args){
            System.out.println("Please enter a positive whole number");
            Scanner inPut = new Scanner(System.in);
            int sum = 0;
            int i = 0;
            int userInput = inPut.nextInt(); 
            while (i<=userInput){
                sum += i;
                i++;

            System.out.println("Sum of this number: " + inPut.nextInt() + " is " + sum);
        }   
 }
}

1 个答案:

答案 0 :(得分:1)

基本上在你的while循环打印语句中,你一次又一次地寻找输入,这不是必需的:

  

System.out.println(&#34;此数字的总和:&#34; + inPut.nextInt()+&#34;是&#34;   +总和);

根据问题,您只需要用户输入并编号为n,然后您需要返回1-N(包括1和n)之间的数字总和。

您只需要打印总和,然后将打印件移出循环。

public static void main(String[] args){
            System.out.println("Please enter a positive whole number");
            Scanner inPut = new Scanner(System.in);
            int sum = 0;
            int i = 0;
            int userInput = inPut.nextInt(); 
            while (i<= userInput){
                sum += i;
                i++;
            }
          System.out.println("Sum : " + sum);
    }

如果问题没有被要求,最好是简单的sum of first n natural numbers简单数学公式,而不是使用while循环。