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