- Java code
int i = 2; i += i-=i*i; System.out.println(i);
- Java code
do { i--; System.out.println(i); continue; } while(i>0);
------解决方案--------------------------------------------------------
第一个:java里面好像不可以用连=(a=b=c这个在java里面是不允许的)
第二个:continue结束本次循环,本次循环都结束了,后面的语句当然就不在执行了,加了没什么用。
do
{
i--;
System.out.println(i);
continue;
这里的语句在循环中,不在执行。
}
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
i += i-=i*i;
从右向左,
i+= i-=4;
i+= 0;
i=0;
2.continue下面的语句永远不会被执行到,所以报错
------解决方案--------------------------------------------------------
第一个也不难啊
计算机室从前往后算,但是赋值是从后往前的
i*i=4,i=i-4=-2,i=i+(-2)=0
------解决方案--------------------------------------------------------
对于第一个问题,我想说的是实际中不会这样写,可读性不强,太繁琐,第一个语句从右到左依次运算就可以得到结果0;
对于第二个问题,continue跳出当前循环的操作 ,继续执行这个循环的下个操作,后面语句都不会执行,所以continue后面的代码就是unreachable code,以后遇到报错要看看是什么类型的错误,这才是好的习惯
------解决方案--------------------------------------------------------
程序在初始化的时候,虚拟机就把压了4个2到栈里,所以后面的是不会再把i赋其他值的。