【JAVA】while 循环要注意的点

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 循环是一样的,每次循环之前都要计算布尔表达式的值

猜你喜欢

转载自www.cnblogs.com/syxy/p/10074755.html