目录
什么是while
在Java流程控制语句中,while属于循环语句,用来进行循环执行代码块,根据条件来进行循环,直到条件不符合则退出循环,正常情况下单独使用,偶尔会和do同时使用,用来设置更加符合要求的循环,具体用法如下:
while的用法:
1:while
此用法优先对while内的条件进行判断,如果为true,则直接运行内部代码,运行完毕之后,重新进行判断,直到结果为false退出循环,向下继续执行代码:
int i = 1;
while (i <= 5) {
System.out.println(i);
i++;
}
System.out.println("循环结束");
该代码执行结果为:
1
2
3
4
5
循环结束
由此可见,i的初始值为1,在判断while条件的时候,条件结果为true,所以执行while内部代码,每次执行,i的值都会加一,当i = 6时,while的条件不再被满足,条件结果为false,所以while内部的代码不再被执行,直接跳过执行下方代码。
2:do...while
此用法while和do搭配使用,与while单独使用不同的是,该部分代码不论条件是否为true,先执行一次代码块在进行判断,结果为true时再返回do处重新执行代码块,直到while处代码为false时,不再进行循环,直接向下执行代码:
int i = 1;
do {
System.out.println(i);
i++;
} while (i > 5);
System.out.println("循环结束");
该代码执行结果为:
1
循环结束
由此可见,i的初始值为1,不符合while的条件,但是由于和do搭配使用,所以先强制执行一次代码,再进行判断,要注意的是,再判断时,i的值不再是1,而是2,所以当while和do搭配使用时,要注意本来结果为false的条件会不会在通过一次运算后变成true,如果有此类情况发生,要核对是否符合本来要求。
二者区别:
while是先进行判断,后进行循环,如果第一次是false,则不会执行while内部代码;
do...while是先进行一次循环,再进行判断,不论第一次条件是否为false,总会执行至少一次循环代码,也要注意本来为false的条件会不会执行之后变为true。
特别注意:
死循环:
死循环,即一直在循环不会跳出循环,原因通常是条件不合适,或者代码内部没有对变量进行操作:
1:未对条件进行操作:
int i = 1;
while (i <= 5) {
System.out.println(i);
}
System.out.println("循环结束");
该代码执行结果为:
1
11
...
1
1
...
该循环的执行结果将会是 1的无限循环,因为没有对变量i进行操作,导致条件一直为true,循环不会跳出,所以会造成死循环。
2:条件不合理:
int i = 1;
do {
System.out.println(i);
i++;
} while (i > 1);
System.out.println("循环结束");
该代码执行结果为:
1
23
4
5
6
...
该循环的执行结果将会是1到无限大的递增,每次增加1,本来条件i>1是false,但是由于执行一次之后,结果就变为true,无法跳出循环,导致出现死循环;
总结:
当使用循环时,要根据需求进行编写,尤其注意不要出现死循环,如果出现死循环,并且无法即使关闭程序,会导致数据溢出,服务器卡死。
标签:语句,do,Java,代码,while,循环,false,true From: https://blog.csdn.net/loser_mine/article/details/143650039