Java 如何在while循环中求出数字的和,然后打印结果?

Java 如何在while循环中求出数字的和,然后打印结果?,java,while-loop,numbers,sum,Java,While Loop,Numbers,Sum,我需要对所有的数字求和,所以sum=sum+I,但我不知道为什么我没有得到预期的结果 因此,任务是:使用while循环计算从1到1000的所有数字的总和,使其打印总和而不是中间值 public static void main(String[] args) { int i = 1; int sum = 0; while (i <= 1000) { sum = sum + i; ++i; } System.out.pri

我需要对所有的数字求和,所以
sum=sum+I
,但我不知道为什么我没有得到预期的结果

因此,任务是:使用while循环计算从1到1000的所有数字的总和,使其打印总和而不是中间值

public static void main(String[] args)
{
    int i = 1;
    int sum = 0;
    while (i <= 1000) {
        sum = sum + i;
        ++i;
    }
    System.out.print(sum);
}
publicstaticvoidmain(字符串[]args)
{
int i=1;
整数和=0;

而(i如果你想对给定范围内的数字求和,你可以使用 高斯和公式

以下哪一项是:

(n * (n + 1)) / 2
平均值:(范围*(最大值+1))/2有关说明,请参阅:

在将1和1000相加的情况下:(1000*1001)/2

如果要求和,例如从500到1000,可以将公式更改为:

 (501 * 1500) / 2
您可以创建如下方法:

import java.util.*;
import java.lang.*;
import java.io.*;

class Ideone
{

    public static double sumRange(double begin, double end) {
        return ((end - (begin-1)) * (end + begin) ) / 2;
    }
    public static void main (String[] args) throws java.lang.Exception
    {
        System.out.println(sumRange(1, 1000));
        System.out.println(sumRange(500, 1000));
        System.out.println(sumRange(20, 300));
    }
}
工作示例:

输出:

成功时间:0.09内存:320320信号:0 500500 375750 44960.0

要检查结果,可以使用wolframalpha:

尝试将
++i;
更改为
i++;
。我使用了您的代码并进行了交换,它对我有效。前后的
++
非常关键,它决定了您何时增加
i
公共类主
{
公共静态void main(字符串[]args)
{
整数和=0,i=1;
//使用while循环计算1到1000的和

while(i)期望的结果是什么?你期望的是什么?你得到了什么?好吧,你给出的结果和等于500500,这是正确的结果。假设你的代码是正确的,它可以通过使用for循环来简化:
int sum=0;for(int i=0;i@mkrakhin说的是什么;你把所有的int加起来,从1到n,结果是n*(n+1)/2,这就得到了500500。预期。那么,如果不是这样,你期望什么呢?