在程序设计中,有时需要反复执行一段相同的代码,知道满足一定的条件为止,或者某个条件不再满足为止。与其他任何计算机语言一样,Java也提供了循环结构。
循环结构一般包含如下4部分内容:
(1)初始化部分:用来设置循环控制的初始条件,如设置计数器初始值等。
(2)循环体部分:反复执行的一段代码,可以是一条语句,也可以是复合语句。
(3)迭代部分:用来修改循环控制条件。一般在本次循环结束,下次循环开始前执行。循环结构的这一部分不能缺少,如果循环控制条件不改变就会造成死循环,除非使用break这样的语句跳出循环。
(4)判断部分:一般是一个关系表达式或逻辑表达式,其值用来判断是否满足循环终止条件。每执行一次循环都要对该表达式求值。
1.while循环
无法得知一个循环会被重复执行多少次时,可以选择while循环。while循环又称“当型循环”。while语句的格式如下:
循环变量初始化;
while(循环条件表达式) { 循环体部分; 迭代部分; }
注意:
(1)首先初始化控制条件。
(2)当循环条件表达式的值为true时,循环执行循环体。若某次判断循环条件表达式的值为false时,则结束循环的执行。
(3)while循环首先计算循环条件,当条件满足时,才去执行循环体中的语句或代码块;如果首次计算循环条件为假,则循环体中的语句或代码块一次都不会执行。
(4)while循环通常用于循环次数不确定的情况,但也可以用循环次数确定的情况。
2.do…while循环
do…while语句用来实现“直到型循环”,采用格式如下:
循环变量初始化;
do { 循环体; 循环条件改变; } while(循环条件表达式)
说明:do…while循环先执行一次循环体,然后才对循环条件进行判断。如果为true,则再执行循环体,直到循环体为false,结束循环。继续执行后续程序。
根据这一的执行方式,可以发现无论循环条件是true还是false,循环体至少被执行一次。另外,如果循环条件表达式的值开始就为false,那么即使循环体中不包含对循环条件的修改,也不会造成死循环。do…while循环流程图如下图所示:
3.for循环
当事先知道了循环会被重复执行多少次时,可以选择Java提供的步长型循环结果for循环。for循环语句的格式如下:
for(循环变量初始化;循环条件表达式;循环变量修改) { 循环体; }
(1)for循环执行时,首先执行初始化操作,然后判断循环条件是否满足。如果满足则执行循环体中的语句,最后执行循环变量的修改部分。完成一次循环后,重新判断终止条件。
(2)可以在for循环的初始化部分声明一个变量,他的作用域为整个for循环。
(3)for循环通常用于循环次数确定的情况,但也可以根据循环条件完成循环次数不确定的情况。
(4)在初始化部分和循环变量修改部分可以使用逗号语句来进行多个操作。例如:for(i=0,j=10;i<j;i++,j—)
(5)初始化、条件表达式和循环变量修改部分都可以为空语句,但分号不能省略。例如:
i=1; for(;i<=5;) { i++; }
这样与for(i=1;i<=5;i++)语句是相同的效果。
(6)for循环与while循环是可以相互转换的,例如:
for(i=1;i<=5;i++){}
等同于:
i=1; while(i<=5) { i++; }
for循环流程如图所示: