int x,y;
x = 100;
y = 200;
while(++x<--y);
system.out.println(x);
为什么输出结果是150,按我的思路结果应该是101,谁能给我讲讲啊。我的理解就是 :X自加了,得101,Y自减了,得199,101<199,所以条件为真,但没有循环体,所以什么都不执行。最后直接输出X 为101。
x = 100;
y = 200;
while(++x<--y);
system.out.println(x);
为什么输出结果是150,按我的思路结果应该是101,谁能给我讲讲啊。我的理解就是 :X自加了,得101,Y自减了,得199,101<199,所以条件为真,但没有循环体,所以什么都不执行。最后直接输出X 为101。
而在149前都是符合条件的,这个语句其实被执行了49次,才跳到System.out.println(x);这一句的.
按照你的理解,while(++x <--y)只执行了一次,但是102,103同样的符合while条件的.呵呵
所以不会马上打印出第一次符合条件的X,而是到了149后,在条件判断前自加一,判断条件不成立才跳到下一句.
如果写成while(++x <--y){
System.out.println(x);
}
那么就会打印出101~~~149所有的数.
因为你的while循环没有大括号,所以你的代码的意思其实是如果++x的值小于--y的值就什么也不做,继续循环
知道++x不再小于--y才退出循环执行打印x的值
System.out.println(x);
}
那么就会打印出101~~~149所有的数
楼上的说的是……
小括号里的内容不就是个判断的条件吗,真正要循环的东西应该在大括号里啊。为什么小括号里的条件自己循环起来了?还是没太明白
x = 100;
y = 200;
while(x <y){++x;--y;};
system.out.println(x);
你的语句相当于这样,当然会循环
int x,y;
x = 100;
y = 200;
while(++x <--y){
//......
};
System.out.println(x);
改后
int x,y;
x = 100;
y = 200;
while(++x <--y){
System.out.println(x);};