1. 循环语句概念
-
理解:循环语句具有在
某些条件
满足的情况下,反复执行
特定代码的功能。 -
循环结构分类:
-
for 循环
-
while 循环
-
do-while 循环
-
-
循环结构
四要素
:-
初始化部分
-
循环条件部分
-
循环体部分
-
迭代部分
-
2. for循环
2.1 基本语法
语法格式:
for (①初始化部分; ②循环条件部分; ④迭代部分){
③循环体部分;
}
**执行过程:**①-②-③-④-②-③-④-②-③-④-…..-②
图示:
说明:
-
for(;;)中的两个;不能多也不能少
-
①初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔
-
②循环条件部分为boolean类型表达式,当值为false时,退出循环
-
④可以有多个变量更新,用逗号分隔
3. while循环
3.1 基本语法
语法格式:
①初始化部分
while(②循环条件部分){
③循环体部分;
④迭代部分;
}
**执行过程:**①-②-③-④-②-③-④-②-③-④-…-②
图示:
说明:
-
while(循环条件)中循环条件必须是boolean类型。
-
注意不要忘记声明④迭代部分。否则,循环将不能结束,变成死循环。
-
for循环和while循环可以相互转换。二者没有性能上的差别。实际开发中,根据具体结构的情况,选择哪个格式更合适、美观。
-
for循环与while循环的区别:初始化条件部分的作用域不同。
4. do-while循环
4.1 基本语法
语法格式:
①初始化部分;
do{
③循环体部分
④迭代部分
}while(②循环条件部分);
**执行过程:**①-③-④-②-③-④-②-③-④-…-②
图示:
说明:
-
结尾while(循环条件)中循环条件必须是boolean类型
-
do{}while();最后有一个分号
-
do-while结构的循环体语句是至少会执行一次,这个和for和while是不一样的
-
循环的三个结构for、while、do-while三者是可以相互转换的。
5. 对比三种循环结构
-
三种循环结构都具有四个要素:
-
循环变量的初始化条件
-
循环条件
-
循环体语句块
-
循环变量的修改的迭代表达式
-
-
从循环次数角度分析
-
do-while循环至少执行一次循环体语句。
-
for和while循环先判断循环条件语句是否成立,然后决定是否执行循环体。
-
-
如何选择
-
遍历有明显的循环次数(范围)的需求,选择for循环
-
遍历没有明显的循环次数(范围)的需求,选择while循环
-
如果循环体语句块至少执行一次,可以考虑使用do-while循环
-
本质上:三种循环之间完全可以互相转换,都能实现循环的功能
-
6. "无限"循环
6.1 基本语法
语法格式:
- 最简单"无限"循环格式:
while(true)
,for(;;)
适用场景: - 开发中,有时并不确定需要循环多少次,需要根据循环体内部某些条件,来控制循环的结束(使用break)。
- 如果此循环结构不能终止,则构成了死循环!开发中要避免出现死循环。
7. 嵌套循环(或多重循环)
7.1 使用说明
-
所谓嵌套循环,是指一个循环结构A的循环体是另一个循环结构B。比如,for循环里面还有一个for循环,就是嵌套循环。其中,for ,while ,do-while均可以作为外层循环或内层循环。
-
外层循环:循环结构A
-
内层循环:循环结构B
-
-
实质上,
嵌套循环就是把内层循环当成外层循环的循环体
。只有当内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的外层循环。 -
设外层循环次数为
m
次,内层为n
次,则内层循环体实际上需要执行m*n
次。 -
**技巧:**从二维图形的角度看,外层循环控制
行数
,内层循环控制列数
。 -
**开发经验:**实际开发中,我们最多见到的嵌套循环是两层。一般不会出现超过三层的嵌套循环。如果将要出现,一定要停下来重新梳理业务逻辑,重新思考算法的实现,控制在三层以内。否则,可读性会很差。
例如:两个for嵌套循环格式
for(初始化语句①; 循环条件语句②; 迭代语句⑦) {
for(初始化语句③; 循环条件语句④; 迭代语句⑥) {
循环体语句⑤;
}
}
//执行过程:① – ② – ③ – ④ – ⑤ – ⑥ – ④ – ⑤ – ⑥ – … – ④ – ⑦ – ② – ③ – ④ – ⑤ – ⑥ – ④..
**执行特点:**外层循环执行一次,内层循环执行一轮。