老师,我 想分清这三个定义变量的方法为什么结果不一样呢?

来源:4-7 Java循环语句之 while

Evan_Ma

2017-06-22 10:57

老师,您好。 我想问的问题是在while循环下,i++, i=i++, i=i+1 , 这三个变量,我前提的判断条件已经是i<=100了,i++和i=i+1的输出结果一样。为什么i=i++的输出结果无线循环呢?谢谢老师

写回答 关注

3回答

  • 慕圣0830664
    2017-06-22 15:19:31

    i=i++; 在循环中正常人都不会这么写,要么直接i++,要么i = i+1,要么i = ++i。你这样写i=i++和i=i没什么区别。

    没必要纠结这些无意义的东西,有这个时间还不如去点实际的东西。

    Evan_M...

    好吧,听你的

    2017-07-06 09:46:44

    共 1 条回复 >

  • qq_你好不送_03331182
    2017-06-22 11:52:55

    因为 i=i++;是先赋值参加运算,后自增,也就是说在运算结束之前都不会自增,在for循环这个闭包中,运算不会停止,i就一直是初始值,只有当跳出这个闭包运算之后i才会自增,但你的i一直是初始值,所以一直是<=100的,就进入了无限循环 

    for(var i=0;i<3;){

    i=++i;

    console.log(i);

    }

    如此问题解决,原因是i先赋值了,并且直接参与到闭包中

    Evan_M...

    谢谢大神

    2017-06-22 15:46:00

    共 1 条回复 >

  • Bryant_Choi
    2017-06-22 11:30:32

    因为i=i++是先将“=”右边的i赋值给左边的i,然后i再自增,所以无论i自增到什么值,都和循环后的i没有关系,循环后的i永远都是100,满足你的条件i<=100,所以就一直不断进入无限循环了。

    Evan_M...

    谢谢大神

    2017-06-22 15:45:41

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题