为什么这样输出结果是30?

为什么这样输出结果是30?


public class LoopDemo {

    public static void main(String[] args) {

int n=1; //定义整型变量n作为循环变量,并初始化


    int sum=0;    //定义整型变量sum存放和,并初始化


    while(n<=5)   {

    n=n*n;

    sum=sum+n;

    n++;

    }//使用while循环求1到5的平方和

        

        

        


     System.out.println(sum);   //输出平方和

        

}

}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

14回答
慕码人8061349 2019-05-07 22:29:47

因为你定义了 n = n * n,所以 n 又被重新赋值了一遍,当 n=1 的时候,sum = 1,n++ 为 2,后面在循环的时候执行 n = n * n,则此时n=4了,sum = 1 + 4=5, n++ 为 5,然后再执行的时候 n = n * n,此时 n = 25了,sum = 25 + 5 = 30;正好25 > 5循环结束,那么你最后求得值为 30;

_NAVL_ 2019-05-06 11:30:50

你的循环只执行了3次,每次循环计算的时候n的值分别为1、2、5,所以按照计算逻辑最终sum的结果为30,原因是在循环内n被进行了两次赋值,计算逻辑为求平方后+1http://img1.sycdn.imooc.com//climg/5ccfaa22000110ee05640381.jpg

永丿恒 2019-05-02 21:49:13

你把 n = n * n; sum = sum + n;  换成 sum += (n * n);

DreamMav 2019-04-26 17:09:46

后一次n的值不是前一次n的值+1http://img1.sycdn.imooc.com//climg/5cc2cad000013ef911340433.jpg

中年秃子 2019-04-26 09:07:19

int n = 1;

int sum=0;

while (n<=5) {

sum=sum+n*n;

n++;

}

System.out.print("sum="+sum);

/*你的while里n=n*n没必要赋值,删了就好*/

会浪不会游的咸鱼 2019-04-25 10:45:01

n不要再赋值了,然后下面sum+=n*n就行了

_国士无双 2019-04-21 21:10:27

while(n<=5)   {

    sum=sum+n*n;

    n++;

    }


tvfxqzj 2019-04-19 22:47:22

n*n在赋值给n,并且n++,那么它就不是逐个增长了,第一次循环完n=2,第二次循环完n=5,所以最后答案不对。

DanielZyz 2019-04-16 20:46:19

n=n*n不对啊,sum=n*n

  • sum=n*n+sum
    2019-04-16 20:46:51
DanielZyz 2019-04-16 20:44:10

public class LoopDemo {

    public static void main(String[] args) {

        int sum=0;

        int n=1;

        while(n<=5){

            sum+=n*n; 

            n++; }    

        System.out.println("1到5的平方和为:"+sum);

    

}

}

我觉得这样就行啊,不用特别去赋值一个M=N*N。  系统会自动+1的啊

DanielZyz 2019-04-16 20:41:22

public class LoopDemo {

    public static void main(String[] args) {

//定义整型变量n作为循环变量,并初始化

        int n=1;

        int sum=0;

        while(n<=5){

            sum+=n*n; 

            n++;     //定义整型变量sum存放和,并初始化}

      }

        //使用while循环求1到5的平方和

        System.out.println("1到5的平方和为:"+sum);

        

        


        //输出平方和

        

}

}


Determine001 2019-04-13 10:59:57

你第二次进入循环结束 n就已经是5了 下次直接加了 5X5  所以就是 1+4+25 = 30

兮兮666 2019-04-10 17:12:40

//定义整型变量n作为循环变量,并初始化

        int n=1;

        //定义整型变量sum存放和,并初始化

        int sum1=0;

        int fang=0;

        //使用while循环求1到5的平方和

        while(n<=5){

        fang=n*n;

        sum1+=fang;

       

        n++;

        }

        

        //输出平方和

        System.out.println(sum1);

看这个 笨方法。输出  正常 55

苞芘的爸爸 2019-03-28 09:22:36

同学,问题出在 n=n*n,  你应该定义一个变量接收后 然后累加,不能每次循环 再累加自己吧?

while里改成 int m=n*n就可以了

int n=1;

int sum=0;

while(n<=5) {

int m=n*n;

sum+=m;

n++;

}

System.out.println(sum);


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师