while 循环平时不怎么用,用起来一些细节就忘了,故有此文
我们先来看个程序
public class TestWhile { public static void main(String[] args) { int j=0,m=7; while(j<--m) { for(int i=1;i<7;i++) { j++; } } System.out.println(j); } }
输出结果
6
我们来看下循环一次的流程
可以看到
for 循环结束后
j 的值为 6
到这里我就懵圈了,这样的话
while 循环不是死循环了吗?
怎么还会输出 j 的值?
在此之前,我们先复习下
while 循环,
while 循环在每次循环之前都会对布尔表达式进行判断
结果为
true 就继续执行,结果为
false 就跳出循环
注意这句话
while 循环在每次循环之前都会对布尔表达式进行判断
现在我们回来看之前的循环
在循环一次后,
j 的值变成了
6 ,m 的值变成了
6 ,接下来进入下一次循环
注意
while 循环在每次循环之前都会对布尔表达式进行判断,也就是说,现在要计算布尔表达式的结果
可以看到计算的结果是 false ,所以循环结束了,执行了下一句输出语句
用 for 循环改写是这样的
int j=0; for (int m=7;j<m;m--){ for(int i=1;i<7;i++) { j++; } }
现在你应该 懂我的意思了吧
总结:
while 循环跟
for 循环是一样的,每次循环之前都要计算布尔表达式的值