目录
- 前言:
- Java流程控制是哪三种?
- 顺序结构
- 选择结构(分支结构)
- if 语句
- if单选择结构
- if双选择结构
- if多选择结构
- switch语句
- 循环结构
- while循环
- do……while循环
- for循环
- 循环控制关键字
- 拓展
- IDEA中快速创建循环
- for的死循环
- 循环中的println和print
- 循环中可以嵌套循环
- 增强for循环
- 类似goto的标签(不推荐使用,仅需知道)
- switch 的 case 穿透
- 结尾
前言:
作为编程的“骨架”——流程控制,很多初学者会被顺序、选择、循环绕晕,那才能让代码按照自己的步骤来呢?
其实Java的基本流程控制就三种:顺序结构就像“默认路线”;选择结构就像“判断题”;循环结构就像“重复工作”。就算在复杂的开发都离不开这三种流程。
本文将介绍三种流程控制以及应用帮助你快速掌握这三种基本流程控制
Java流程控制是哪三种?
Java 的三种基本流程控制方式,它们是构建任何复杂程序逻辑的基石。
- 顺序结构
- 选择结构(分支结构)
- 循环结构
顺序结构
这是最简单、最基本的流程控制方式。程序默认按照代码的顺序,从上到下、从左往右依次执行每一句话,没有任何跳过、选择、判断。
代码执行路径是一条直线,没有分支。
publicclassDemo{publicstaticvoidmain(String[]args){inta=10;// |Stringb="HelloWorld!";// | 从上往下一路运行System.out.println(a);// |System.out.println(b);// ↓}}选择结构(分支结构)
选择结构根据条件判断语句的结果来决定执行那一段代码。它让程序具备了“决策”能力。
if 语句
if语句是最基本的条件判断。
if单选择结构
如果条件为True,则执行某段代码;不然就跳过。
if(条件表达式){// 条件为true 时执行的代码块}比如:
intscore=85;if(score>=60){System.out.println("成绩及格");}// 输出:成绩及格if双选择结构
只有一个及格肯定不行,还有一个不及格,这个时候就要用到if……else了。
如果条件为True,执行一个代码块;不然就是执行另一段代码块。
if(条件表达式){// 条件为 true 时执行}else{// 条件为false时执行}比如:
intscore=55;if(score>=60){System.out.println("成绩及格")}else{System.out.println("成绩不及格");}if多选择结构
只有大于60的条件和除了60肯定不行,这个时候就要用到if……else if……else了。
用于判断多个条件,满足哪个条件就执行哪个代码块,如果都不满足就执行else。
if(条件1){// 条件1为True时执行}elseif(条件2){// 条件2为True时执行}elseif(条件3){// 条件3为True时执行}else{// 以上都不符合时执行}比如:
intscore=75;if(score==100){System.out.println("恭喜满分!");}elseif(score<100&&score>=90){System.out.println("A级");}elseif(score<90&&score>=80){System.out.println("B级");}elseif(score<80&&score>=70){System.out.println("C级");}elseif(score<70&&score>=60){System.out.println("D级");}elseif(score<60&&score>=0){System.out.println("不及格");}else{System.out.println("成绩不合法");}switch语句
switch语句也是多选择结构的,它根据一个表达式的值,从一堆case标签种选择一个执行,如果都没有则执行default。
JDK7后,switch的表达式已经支持String类型。
语法:
chargrade='A';switch(grade){case'A':System.out.println("优秀");break;// 输出完优秀后 退出代码块case'B':System.out.println("良好");break;case'C':System.out.println("及格");break;case'D':System.out.println("不及格");break;default:System.out.println("未知等级");}// 输出 优秀循环结构
循环结构用来在满足一定条件的情况下,反复执行某段代码(称为循环体)。
Java三种主要的循环结构:
while循环
先判断条件,如果时true则进入循环体,然后再判断条件……如此反复,知道条件为false时退出循环。
语法:
while(循环条件){// 循环体// 需要有改变条件的语句,不然会变成死循环}特点:先判断,后执行。如果初始条件就不满足,循环体一次都不会执行。
计算1-100的和:
inti=1;intsum=0;while(i<=100){sum+=i++;// 先 sum = sum + i 再 i = i + 1}System.out.println(sum)// 输出为5050do……while循环
先执行一次循环体,然后判断条件。如果条件为true,则继续执行循环体,不然就退出。
特点:先执行,后判断。无论初始条件是否满足,循环体至少会执行一次。
do{// 循环体// (同样需要有改变条件的语句)}while(循环条件);同样的:
inti=1;intsum=0;do{sum+=i;i++;}while(i<=100);// 注意分号System.out.println("Sum = "+sum);// 输出:Sum = 5050但是:
inti=1;do{System.out.println("HelloWorld")}while(i==0);// 条件不满足// 输出 HelloWorldfor循环
for循环将循环的初始化、条件判断和更新操作都集中在一个地方,结构非常紧凑,是使用最广泛的循环。
for(初始化语句;循环语句;迭代语句){// 循环体}初始化语句:在循环开始前执行一次,通常用于声明和初始化循环控制变量。
循环条件:每次循环开始前都会判断此表达式。若为
true则继续循环,否则结束。迭代语句:在每次循环体执行完毕后执行,通常用于更新循环控制变量。
特点:适合已知循环次数的场景
同样的:
intsum=0;for(inti=1;i<=100;i++){// 初始化; 条件; 迭代sum+=i;// 循环体}System.out.println("Sum = "+sum);// 输出:Sum = 5050循环控制关键字
break:立即终止当前所在的整个循环(switch或循环),跳出循环体。continue:跳过本次循环中continue之后的代码,直接进入下一次循环的条件判断。
// 使用 break 找到第一个能被7整除的数后停止for(inti=1;i<=100;i++){if(i%7==0){System.out.println("找到了:"+i);break;// 找到后立即终止循环}}// 使用 continue 只打印奇数for(inti=1;i<=10;i++){if(i%2==0){continue;// 如果是偶数,跳过后面的打印语句}System.out.println(i);// 只打印奇数}拓展
IDEA中快速创建循环
比如创建一个
for(inti=0;i<100;i++){}这样的循环可以直接使用100.for
for的死循环
for(;;){}省略了三个语句
循环中的println和print
println会换行而print不会换行,但是可以使用\n换行符实现换行
for(inti=0;i<5,i++){System.out.print(i)}//输出//01234循环中可以嵌套循环
如打印99乘法表
for(inti=1;i<10;i++){for(intj=1;j<=i;j++){System.out.print(i+"x"+j+"="+(i*j)+" ");}System.out.print("\n");增强for循环
可以直接遍历数组集合
int[]numbers={10,20,30,40,50};// 定义了一个数组for(inti=0;i<5;i++){System.out.println(numbers[i]);}System.out.println("=====================");// 遍历数组的元素for(intx:numbers){System.out.println(x);}类似goto的标签(不推荐使用,仅需知道)
intcount=0;outer:for(inti=101;i<150;i++){for(intj=2;j<150;j++){if(i%j==0){continueouter;}}System.out.println(i+" ");}switch 的 case 穿透
如果没有break的话 匹配到值时也会把后面的一起执行了
chargrade='D';switch(grade){case'A':System.out.println("优秀");case'B':System.out.println("良好");case'C':System.out.println("及格");case'D':System.out.println("不及格");default:System.out.println("未知等级");}// 输出不及格和未知等级结尾
掌握 Java 三种基本流程控制,就相当于拿到了编程的 “操作手册”—— 顺序结构定基础,选择结构做判断,循环结构提效率,三者的灵活组合,能让你的代码从 “被动执行” 变成 “主动响应”。
⭐ 如果这对你有帮助,不妨关注和分享一下!