Java while循环

分享到:

while循环是java三大循环结构之一 ,功能和for循环相同都是重复执行某些操作的语句结构。可以说能用for循环实现的功能同样可以用while循环来实现,区别只在于各自的语法不同。在java中与while最相似的循环结构是do while在以后的章节中会对其进行介绍, 本文将详细介绍while循环在java中的使用方法和注意事项。

(1) while循环语法结构

java while循环语法结构图

while后面的条件表达式可以是一个复杂的逻辑运算,也可也是一个常量,只要最后能表示true或false就可以。循环体是一组需要重复执行的代码,这点和for循环是一样的。

(2) while循环流程图

java while循环流程图

上面这张图已经非常清楚的表示出while循环的执行逻辑:
一开始就要进行条件判断,如果表达式的值为true就执行循环体,当循环体执行完毕后再次进行条件判断。直到条件为false时就会退出while结束循环,如果一开始条件表示式的值就为false,那么循环体中的代码一次都不会执行,直接就退出了。 因此:while循环可能会执行多次也可能一次都不执行。

(3) while死循环
使用while要特别注意一点,如果条件表达式的值始终为true将导致无法结束循环的后果,也就是所谓的死循环。 下面通过实例说明,代码如下:

//死循环例子

while(true){ //条件始终为true,循环体会不断的执行,无止无休
	System.out.print("这是一个死循环\n");
}

上面这段代码一但运行起来就会无休止的输出"这是一个死循环",如果循环体中是一些消耗系统资源的操作,最终后果就是死机!
那么如何避免出现“死循环”呢? 事实上可以在循环内部人为的做一个逻辑判断,只要条件满足就跳出循环。这时我们又要用到break语句了,举例说明:

int i=0;
while(true){
	if(i==3){
		break;
	}
	System.out.print("我不是死循环\n");
	i++; //每次循环变量 i 的值+1
}

//执行结果如下:

我不是死循环
我不是死循环
我不是死循环

上面这段代码虽然条件表达式始终为true 但由于我们在其内部设置了一个条件,当变量 i 等于3的时候执行 break语句,这样就可以直接跳出循环了。因此这段代码只能执行3次循环。

(4) while循环常规用法
通常在使用while时都把退出逻辑直接写到while条件表达式中,而不是写在循环体内部,我们举例说明,代码如下:

int i=1;
while(i<=4){
System.out.print("循环第"+ i +"次\n");
i++;
} //执行结果如下: 循环第1次
循环第2次
循环第3次
循环第4次

上面这个例子的前4次循环变量i的值分别是1,2,3,4 都满足我们设置的i<=4 这个条件,当第5次循环即将开始时i的值已经是5了,表达式i<=4已经不成立了,这时条件表达式 i<4 返回 false 循环体不再执行,循环宣告结束

(5) 总结while循环
[1] 使用while循环要小心条件表达式始终为true的情况,避免程序陷入"死循环" 。如果实在不确定条件表达式的值可在循环体内部根据实际情况设置break语句强制跳出。
[2] while循环和for循环是可以相互替代的,Java并没有明确限定for与while的应用场景,例如while同样可以实现变量的递增或递减,同样可以读取数组元素的值
[3] break语句 和 continue语句在while循环中同样适用

昵    称:
验证码:

相关文档: