循环结构
循环流程图
循环的组成
- 初始部分:用以判断的变量
- 循环条件:决定是否继续循环的依据
- 循环操作:单词执行的逻辑代码或任务
- 迭代部分:控制循环条件改变的增量
初始与迭代
被循环条件判断的变量才是初始部分和迭代部分
public class TestWhile {
public static void main(String[] args) {
int a=1;
int b=1;
int c=1; //初始部分
while(c<=100){
System.out.println("hello");
a++;
b++;
c++; //迭代部分
}
}
}
while循环
语法
while(布尔表达式){
//逻辑代码块
}
执行流程
- 对布尔表达式进行判断,结果为true执行逻辑代码块
- 执行完毕后,再次返回进行布尔表达式判断,结果为true再次执行逻辑代码
- 直到boolean表达式为false,才退出循环,执行后续代码
特点
- 首次判断不满足,则一次都不会执行。(执行次数:0~n次)
- 首次既有入口条件,先判断再执行,适用于循环次数明确的情况
do while 循环
语法
do{
//逻辑代码(循环操作)
}while(布尔表达式);
执行流程
- 先执行一次操作之后,再进行布尔表达式的判断
- 如果结果为true,则再次执行循环操作
- 如果结果为false,才会退出循环结构,执行后续代码
特点
- 判断满足,则循环。不满足,则至少执行一次。(执行次数:1~n次)
- 首次没有入口条件,先执行再判断。适用于循环次数不明确的情况
for循环
语法
for(初始部分;循环条件;迭代部分){
//循环操作
}
执行流程
- 首次执行初始部分(仅一次)
- 对布尔表达式进行判断,结果为true,则执行逻辑代码
- 本次执行完毕,执行迭代部分,再次判断,结果仍旧为true,则再次执行逻辑代码
- 知道Boolean表达式为false,才会退出循环,执行后续代码
特点
- 与while类似,首次判断不满足,则一次都不会执行。(执行次数:0~n次)
- 首次既有入口条件,先判断再执行,适用于循环次数明确的情况
流程控制
break
break:终止、跳出switch、循环结构
public class TestBreak{
public static void main(String[] args){
for(int i=1;i<=10;i++){
if(i==5){
//循环执行中,遇到break则退出整个循环结构
break;
}
System.out.println("当前循环次数:"+i);
}
System.out.println("循环结束");
}
}
/* 运行结果:
当前循环次数:1
当前循环次数:2
当前循环次数:3
当前循环次数:4
循环结束*/
continue
continue:结束本次、进入下次循环
public class TestContinue{
public static void main(String[] args){
for(int i=1;i<=10;i++){
if(i==5){
//循环执行中,遇到continue则跳出这次循环,进入下一次循环
continue;
}
System.out.println("当前循环次数:"+i);
}
System.out.println("循环结束");
}
}
/* 运行结果:
当前循环次数:1
当前循环次数:2
当前循环次数:3
当前循环次数:4
当前循环次数:6
·····
当前循环次数:10
循环结束*/
return
return:跳出main函数体
public class TestReturn{
public static void main(String[] args){
for(int i=1;i<=10;i++){
if(i==5){
//循环执行中,遇到return则跳出整个main函数
return;
}
System.out.println("当前循环次数:"+i);
}
System.out.println("循环结束");
}
}
/* 运行结果:
当前循环次数:1
当前循环次数:2
当前循环次数:3
当前循环次数:4 */
嵌套循环
语法
public class TestNestFor{
public static void main(String[] args){
for(初始部分;循环条件;迭代部分){
//在一个完整的循环中,嵌套另一个完整的循环结构
for(初始部分;循环条件;迭代部分){
//逻辑代码1
}
//逻辑代码2
}
}
}
死循环
while死循环
while(true){
System.out.println("漂亮的死循环");
}
for死循环
for(;;){
System.out.println("漂亮的死循环");
}