Java的学习记录:charpter3.流程控制结构(下):循环结构

3.流程控制结构

3.3循环结构

循环语句就是在满足一定条件的情况下反复执行某一个操作,可以解决很多实际问题,使用较为广泛。
Java中循环语句有while循环do-while循环for循环语句。
循环结构的特点是在给定的条件成立时,反复执行一段代码,直到条件不成立,可以把循环分为4个部分,也可以理解为循环必须所有的四要素:
1.初始部分:设置循环的初始状态,只执行一次
2.循环条件:判断是否继续循环
3.循环体:满足循环条件时执行的语句
4.迭代部分:即变量值得变化趋势和幅度
Java的学习记录:charpter3.流程控制结构(下):循环结构

3.3.1while循环

while循环是最基本的循环

语法
1初始部分;
while( 2布尔表达式 ) {
3循环体;
4迭代部分;
}

注意
1.执行顺序为:1-2(true)-3-4
2.初始部分只执行一次,如果表达式的结果为true则执行循环操作,为false则不执行循环内部的操作,即先判断后执行
3.一般在循环次数不固定的情况下使用

示例:
int x = 10;
while( x < 12) {
System.out.print( x );
x++;
System.out.print("\n");
}
结果:
10
11

3.3.2do-while循环

do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。

语法
1初始部分;
do {
3循环体;
4 迭代部分;
}while(2布尔表达式);

注意
1.执行顺序:1-3-4-2(true)-3
2.初始部分只执行一次
3.do-while于while循环最大的不同是,它是先执行后判断的,即不管循环条件是否满足,程序do{}内部至少执行一次
4.一般在循环次数不固定的情况下使用

示例:
Java的学习记录:charpter3.流程控制结构(下):循环结构

3.3.3for循环

虽然所有循环结构都可以用 while 或者 do…while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。

语法

for(1初始部分; 2布尔表达式(循环条件);3 迭代部分) {
4循环体
}

注意
1.for循环的执行顺序:1-2(true)-4-3,如果不满足循环条件则跳出循环
2.for循环的初始部分的变量声明可以写在for的前面,因为会牵扯到变量作用域的问题,要遵从最小作用域原则,在否则在编写代码的时候容易报错,具体根据实际情况而定。
3.for循环不同于其它循环的是,一般在循环次数固定的情况下使用,循环系数不固定的情况下,一般使用另外两种循环
4.快捷键为:fori+回车键

示例:
Java的学习记录:charpter3.流程控制结构(下):循环结构

3.3.4增强for循环

增强for是一种主要用于数组的增强型 for 循环,主要用于数组元素的遍历

语法
for(声明语句 : 表达式)
{
输出语句块
}

注意
.1.声明语句的组成:数组的数据类型和 数组元素的变量名
2.声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等,即此时的变量只是数组元素值的副本
3表达式是要访问的数组名,或者是返回值为数组的方法
4.为了编写代码方便,可以用array.for+回车键快捷键直接敲出

示例:
for(int x :array){
System.out.println(x)
}

3.3.5跳转语句

Java语言支持3中类型的跳转语句:break语句、continue语句和return语句。使用这些语句可以把控制转移到循环甚至程序的其他部分。在这里主要介绍break和continue语句。

break语句
语法
for(1初始部分; 2布尔表达式(循环条件);3 迭代部分) {
4循环体
break;
}
5循环外语句块;

注意
1.break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
2.break 跳出最里层的循环,并且继续执行该循环下面的语句。
3.执行顺序为1-2-4(break)-5,直接执行循环外的语句块
4.break语句只会出现在switch语句和循环语句中,没有其他使用场合

continue语句
语法
for(1初始部分; 2布尔表达式(循环条件);3 迭代部分) {
4循环体
continue;
}
5循环外语句;

注意
1continue 适用于任何循环控制结构中。作用是结束本次循环,让程序立刻跳转到下一次循环的迭代。
2在 for 循环中,continue 语句使程序立即跳转到更新语句。
3在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。
4.执行顺序:1-2-4-continue-3-2
5.continue在while和do-while循环中,continue执行完毕后,程序将直接判断循环条件,如果为true,则进行下一次循环,为fasle则终止循环;而在for循环中,continue使程序先跳转到循环变量计算部分,然后再判断循环条件

比较
1.break的作用是终止当前循环语句的执行,然后执行当前循环后面的语句
3.continue的作用是终止本次循环,然后执行下一次循环,即只跳出一层循环,直至不满足循环条件为止。

return语句
1 return:并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到一个return语句时,这个方法将被结束。
2. 与break和continue不同的是,return直接结束整个方法,不管这个return处于多少层循环之内。

3.3.6多重循环

多重循环即whie、do-while、for循环之间的相互嵌套循环。

语法
1.初始部分;2;循环条件;3迭代部分;4循环体
for(1;2;3){ //外层循环
​ 4
​ for(5;6;7){ //内层循环
​ 8
if(条件1){
​ continue; ----接下来执行7
}
if(条件2){
​ break;----接下来执行11再执行3 (只能跳出内层循环)
}
​ 9
}
​ 10
}
11

执行顺序
1-2-4-5-6-8,如果满足条件1,则会执行7-6(true)-8,如果不满足条件1和条件2则执行9-10-3-2;如果满足条件2,则执行10-3-2

注意
1.将一个循环放在另一个循环体内,就形成了嵌套循环,即多重循环。其中,for ,while ,do…while均可以作为外层循环或内层循环。
2.实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层3循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。
3.设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次。
4.break只能跳出内层循环,而不能跳出外层循环,

示例:
Java的学习记录:charpter3.流程控制结构(下):循环结构

总结
1.while、do-while、for循环三者比较
*while、do-while循环一般用于循环次数不固定的情况下,二for循环用于循环系数固定的情况。
*while、for循环都是先判断后执行,而do-while循环是先循环后执行,即至少循环一次,一般用于至少先做一次的案例
*三种循环都必须遵从四要素,但是并非拘泥于四要素,具体视情况而定
*三种循环中for循环使用最为广泛,但具体使用哪种要视情况而定

2break和continue语句:
*break只能用于switch语句和循环语句中。
*continue 只能用于循环语句中。
*break和cotinue的作用都是跳出循环,但continue是终止本次循环,break是终止本层循环。
*break、continue之后不能有其他的语句,因为程序永远不会执行其后的语句。