一、while循环
1.1 while循环
循环次数不确定的情况—用户确定
先判断后执行
语法:
while(布尔表达式){
//逻辑代码(循环操作)
}
执行流程:
- 先对布尔表达式进行判断,结果为true,则执行逻辑代码。
- 本次执行完毕后,再次进行判断,结果仍旧为true,则再次执行逻辑代码。
- 直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。
1.2 do while循环
先执行后判断,循环次数不固定的情况
语法:
do{
逻辑代码(循环操作)
}while(布尔表达式);
执行流程:
- 先执行一次循环操作之后,再进行布尔表达式的判断。
- 如果结果为true,则再次执行循环操作。
- 如果结果为false,才会退出循环结构,执行后续代码。
二、for循环
语法:
for(初始部分 ; 循环条件 ; 迭代部分){
//循环操作
}
执行流程:
- 首次执行初始部分(仅一次)。
- 对布尔表达式进行判断,结果为true,则执行逻辑代码。
- 本次执行完毕后,执行迭代部分,再次判断,结果仍旧为true,则再次执行逻辑代码。
- 直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。
特点:首次即有入口条件,先判断、再执行,适用于循环次数明确的情况。
三、嵌套循环
概念:在一个完整的循环结构中,嵌套另一个完整的循环结构。
public static void main(String[] args){
/*
*****
*****
*****
*/
//不采用此种方式
//System.out.println("*****");
//冗余(重复)代码,避免重复,采取复用代码的形式
//将内部的代码,重复3次
for(int i = 1 ; i <= 3 ; i++){// i = 4
//在1行中打印5颗星
for(int j = 1 ; j <= 5 ; j++){//
System.out.print("*");
}
System.out.println();
}
//程序流程到达此处
/*
*****
*****
*****
*/
//打印直角三角形
/*
* j <= 1
** j <= 2
*** j <= 3
**** j <= 4
***** j <= 5
*/
//外层控制行数
for(int i = 1 ; i <= 5 ; i++){ // i = 6
//内层控制列数
for(int j = 1 ; j <= i ; j++){ //
System.out.print("*");
}
System.out.println();
}
//打印等腰三角形
// ####*
// ###***
// ##*****
// #*******
// *********
int rows = 5;
//1.打印倒的直角三角形
for(int i = 1 ; i <= rows ; i++){ //外层打印5行
//打印4行的直角三角形
for(int j = rows - 1 ; j >= i ; j--){ // j = 4 ; j >= 1
//被满足4次
System.out.print("#");
}
System.out.println();
}
//2.打印正的直角三角形(每次递进数值上 *2-1 )
// *
// ***
// *****
// *******
// *********
for(int i = 1 ; i <= rows ; i++){ // i = 1
for(int j = 1 ; j <= i*2-1 ; j++){
System.out.print("*");
}
System.out.println();
}
//整合
// ####*
// ###***
// ##*****
// #*******
// *********
for(int i = 1 ; i <= rows ; i++){ // i = 2
for(int j = rows - 1 ; j >= i ; j--){ // j = 4 ; 4 >= 2
System.out.print(" ");
}
//程序当前的执行流程位置
for(int j = 1 ; j <= i*2-1 ; j++){ // j = 1 ; j <= 3
System.out.print("*");
}
System.out.println();
}
}
四、流程控制
4.1 break
break:终止、跳出switch、循环结构。
4.2 continue
continue:结束本次、进入下一次循环。