LoopStructure 循环结构
1.定义
定义:在某些条件满足的情况下,反复执行特定代码的功能。
2.组成部分
2.1:具体基本组成
4部分构成(当然这是基本结构,后续可根据需要灵活变通)。
①初始化部分(init_statement)(确定变量的类型和初值);
②循环条件部分(test_exp)(布尔型关系式);
③循环体部分(body_statement)(确定重复执行代码);
④迭代部分(body_statement)(确定变量值变化的趋势和幅度)
2.1.1:注意
- ②循环条件部分为boolean类型表达式,当值为false时,退出循环。(退出循环的方式之一)
- ①初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔。
- ④迭代部分可以有多个变量更新,用逗号分隔
- 切记避免死循环发生。
3.分类
共3类。 for 循环; while 循环; do-while 循环。
3.1:for 循环
3.1.1:语法格式
for (①; ② ; ④ ){
③ ;
}
3.1.2:执行过程
执行过程: ①-②-③-④-②-③-④-②-③-④-…-②
(不满足循环条件部分,跳出循环)
3.2:while 循环
3.2.1:语法格式
① 初始化部分
while(② 循环条件部分){
③循环体部分;
④迭代部分;
}
3.2.2:执行过程
执行过程: ①-②-③-④-②-③-④-②-③-④-…-②
(不满足循环条件部分,跳出循环)
3.2.3:注意
- 注意不要忘记声明④迭代部分。否则,循环将不能结束,变成死循环。
- for循环和while循环可以相互转换 。
区别:for循环和while循环的 ①初始化条件部分 的作用范围不同。
3.3:do-while 循环
3.3.1:语法格式
① 初始化条件
do{
③循环体部分;
④迭代部分;
}while(②循环条件部分);
3.3.2:执行过程
执行过程: ①-③-④-②-③-④-②-③-④-…-②
(不满足循环条件部分,跳出循环)
3.3.3:注意
- do-while 循环至少执行一次循环体;即 ①-③-④-② (不满足循环条件部分,跳出循环)-③-④-…-②(不满足循环条件部分,跳出循环)。
- 开发中,使用for和while更多一些,较少使用do-while 。
4.总结
4.1 不在循环条件部分限制次数的结构格式
2种;
方式一:for(;;)
方式二: while(true)
4.2 结束循环的方式
2种;
方式一:循环条件部分返回false
方式二:在循环体中,执行break
5. 嵌套循环
5.1:定义理解
嵌套循环:将一个循环放在另一个循环体内,就形成了嵌套循环。其中 for ,while ,do…while 均可以作为外层循环或内层循环。(实质上嵌套循环就是把内层循环当成外层循环的循环体。当内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。)
5.2:具体应用
理解:设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行 m * n 次。
外层循环控制行数,内层循环控制列数。
6. break和continue 关键字的使用
关键字 | 使用范围 | 循环中作用的不同点 | 相同点 |
---|---|---|---|
break | switch-case和循环结构中 | 结束当前循环 | 关键字后面不能声明执行语句 |
continue | 循环结构中 | 结束当次循环 | 关键字后面不能声明执行语句 |
6.2:laber: 标签
break和continue关键字都可以结合laber标签使用,表明结束标签示意的循环结构。
6.2.1:注意
注意:标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。
6.2.2:格式
格式:
- break laber;
break语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一个循环 - continue laber;
continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环
7.return语句和break语句及continue语句的区别
return:并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到一个return语句时,这个方法将被结束。
区别 : 与break和continue不同的是,return直接结束整个方法,不管这个return处于多少层循环之内。
5. 代码示例展示
循环结构代码片
。
//遍历100以内的偶数,输出所有偶数的和,输出偶数的个数。
public void scoreAdd() {
/* //方式一:
int sum = 0;//记录所有偶数的和
int count = 0;//记录偶数的个数
for(int i = 1;i <= 100;i++){
if(i % 2 == 0){
System.out.println(i);
sum += i;
count++;
}
//System.out.println("总和为:" + sum);
}
System.out.println("总和为:" + sum);
System.out.println("个数为:" + count);
*/