使用 for 和 while 循环对序列求和

问题描述

package com.company;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(system.in);
        System.out.println("Last Number ");
        int inputednumber = Integer.valueOf(scanner.nextInt());
        int result = 0;
        int outcome = 0;
        for(int i = 0; i < inputednumber; i++) {
            result += ;
        }
        /*/*while (outcome <= inputednumber) {
            result += inputednumber;
            outcome++;
        }*/
        System.out.println(result);
    }
}

我有一个问题不明白这里出了什么问题,因为我想解决这个任务,本来应该是(实现一个程序,它计算总和 1+2+3+...+n 其中 n 是作为用户输入给出。)但它给了我另一个答案,请以两种方式为我解决问题,以了解我出了什么问题,因为到目前为止一切对我来说都有意义,但代码无法正常工作是

解决方法

你可以试试下面的代码:

for(int i = 1; i <= inputedNumber; i++) {
    result += i;
}

注意:您应该根据您的要求从 i=1 开始:

1+2+3+..+n

,

你需要替换 result += ;结果 += i;

,

对于第一种情况。这不是有效的 Java 代码,您应该在 += 运算符之后放置一个值/变量。

for (int i = 0; i < inputedNumber; i++) {
  result += ;
}

如果将变量 i 放在它后面,并使用 i

for (int i = 0; i <= inputedNumber; i++) {
  result += i;
}

在第二种情况下,你实际上是在做 n*(n+1)

while (outcome <= inputedNumber) {
   result += inputedNumber;
   outcome++;
}

这可以作为输入值测试为 2:

第一次迭代:

outcome -> 0
inputedNumber -> 2
result -> 2

The second iteration:
outcome -> 1
inputedNumber -> 2
result -> 4


The third iteration:
outcome -> 2
inputedNumber -> 2
result -> 6

修复方法与我之前建议的类似。你可以把它当作练习。