循环的种类:
- for
- while
- do…whiile
- forEach
- forLabel
1.for循环
for(a;b;c) {
d;
}
a 循环的起始条件,一般是一个变量的定义,标识符一般为i
b 循环的判断条件,是一个具有布尔值的表达式
c 循环趋向于结束的条件
d b为真的时候要执行的代码,称为循环体/循环代码块
分治算法,动态规划,贪心算法******
四皇后问题,汉诺塔问题,0-1背包问题,台阶问题,哲学家吃饭问题,货郎担问题
2.循环中的break
在循环中表示一旦执行之后,后续的尚未执行的循环部分全部放弃,不再执行.
效果:提前结束循环
注意:break必须位于循环体的最后一行,否则后续代码标记不可达报错!
3.for循环的嵌套
循环的执行次数:
- 外层循环的执行次数取决于外层循环的三个条件
- 内层循环的执行次数是外层循环次数和内层循环次数的乘积
- 循环最多嵌套三次
双层for的执行流程
先执行外层循环,再执行内层循环,此时内层循环的所有次数都执行完毕,再执行外层循环,以此类推…
结论:外层循环执行一次,内层循环执行全部.
应用:
- 输出100以内所有的质数/素数(只能被1和他本身整除的数字,1既不是质数也不是合数)
4.while循环
语法:
while(具有布尔值的表达式){
//循环体
}
一般而言,需要在循环体里控制循环的次数,可以使用之前for里的i循环变量的写法或break
5.do…while
语法:
do{
}while();
注意:while();后面的分号不能省略
结果:
如果判断条件为真,do循环体可以执行;
如果判断条件为假,do循环体可以执行,最多只执行一次
6.forLabel
语法:
label:for(a;b;c){
//循环体
break babel;
}
label是for循环的一个自定义名字
label相当于给for起名字,必须符合标识符命名规范
break label; 可以结束外侧的循环
7.双层for中的break
break的执行和判断和条件无关,只取决于break所在的循环
- 如果break位于内层循环,提前结束内层循环
- 如果break位于外层循环,提前结束外层循环
8.for和while的区别:
1.for有3个条件,while有1个
for可以进行循环次数的精确控制,while适用于不明确需要循环多少次的情况
2.趋向于结束的方式
for使用循环变量i使得循环结束,while使用break使得循环结束
9.while循环和do-while循环的区别
while循环在条件为真的情况下才会执行
do…while循环即使条件为假,循环也会执行一次
10.break、continue、return的区别
- break 跳出总上一层循环,不再执行循环(结束当前的循环体)
- continue 跳出本次循环,继续执行下次循环(结束正在执行的循环 进入下一个循环条件)
- return 程序返回,不再执行下面的代码(结束当前的方法 直接返回)