🧭 Java 逻辑控制详解 🥰
文章目录
- 🧭 Java 逻辑控制详解 🥰
- 📖 本文导读
- 1️⃣ 顺序结构 🙂
- 2️⃣ 分支结构 🤨
- 2.1 if 语句
- 2.2 switch 语句
- 🔄 switch 穿透现象 😮
- 📋 switch 支持的类型(留个印象就好了)
- 3️⃣ 循环结构 🤔
- 3.1 while 循环
- 3.2 do-while 循环
- 3.3 for 循环
- 🔁 for 循环的执行顺序
- 3.4 增强for循环(for-each)
- 4️⃣ break 和 continue 😏
- 4.1 break — 跳出整个循环
- 4.2 continue — 跳过本次循环
- 4.3 带标签的 break(了解)
- 5️⃣ 循环嵌套 🤓
- 📊 小结
- ✍️ 写在最后
📌 逻辑控制是编程的基础,决定了程序的执行流程
即使你有C/C++的基础,但有一些细节还是需要注意
📖 本文导读
本文将系统讲解 Java 的三种程序控制结构:顺序结构、分支结构、循环结构,以及break和continue的使用技巧。适合 Java 初学者阅读。
1️⃣ 顺序结构 🙂
最简单的程序结构:从上到下,依次执行。
publicclassTest{publicstaticvoidmain(String[]args){System.out.println("第一步");System.out.println("第二步");System.out.println("第三步");}}没什么好说的,就是按顺序一行一行执行。
2️⃣ 分支结构 🤨
分支结构让程序可以根据条件选择不同的执行路径。
2.1 if 语句
publicclassTest{publicstaticvoidmain(String[]args){intscore=85;if(score>=90){System.out.println("优秀");}elseif(score>=60){System.out.println("及格");}else{System.out.println("不及格");}// 输出:及格}}⚠️if 语句的常见陷阱:
// 错误写法:分号提前结束了 ifif(score>=60);{System.out.println("及格");// 永远会执行!}分号
;是一条空语句,上面的代码等价于:if(score>=60){}// 什么都不做{System.out.println("及格");}// 独立的代码块,永远执行
2.2 switch 语句
publicclassTest{publicstaticvoidmain(String[]args){intday=3;switch(day){case1:System.out.println("星期一");break;case2:System.out.println("星期二");break;case3:System.out.println("星期三");break;case4:System.out.println("星期四");break;case5:System.out.println("星期五");break;case6:case7:System.out.println("周末");break;default:System.out.println("无效输入");break;}// 输出:星期三}}🔄 switch 穿透现象 😮
忘记写break会发生穿透:
publicclassTest{publicstaticvoidmain(String[]args){intnum=2;switch(num){case1:System.out.println("一");case2:System.out.println("二");case3:System.out.println("三");default:System.out.println("其他");}// 输出:// 二// 三// 其他}}💡 穿透不一定是坏事,合理利用可以简化代码:
case6:case7:System.out.println("周末");// 6 和 7 都执行这里break;
📋 switch 支持的类型(留个印象就好了)
| Java 版本 | 支持的类型 |
|---|---|
| Java 5 及之前 | byteshortintchar |
| Java 5 | 新增enum(枚举) |
| Java 7 | 新增String(字符串) |
// Java 7+ 支持 StringStringcolor="red";switch(color){case"red":System.out.println("红色");break;case"green":System.out.println("绿色");break;default:System.out.println("未知颜色");}3️⃣ 循环结构 🤔
循环结构让程序可以重复执行某段代码。
3.1 while 循环
publicclassTest{publicstaticvoidmain(String[]args){inti=1;while(i<=5){System.out.println("第 "+i+" 次");i++;}}}3.2 do-while 循环
先执行一次,再判断条件:
publicclassTest{publicstaticvoidmain(String[]args){inti=1;do{System.out.println("第 "+i+" 次");i++;}while(i<=5);}}🔍while vs do-while:
while:先判断,可能一次都不执行do-while:先执行一次,至少执行一次当你需要至少执行一次时,用
do-while。
3.3 for 循环
最常用的循环:
publicclassTest{publicstaticvoidmain(String[]args){// 打印 1 到 5for(inti=1;i<=5;i++){System.out.println("i = "+i);}// 计算 1 到 100 的和intsum=0;for(inti=1;i<=100;i++){sum+=i;}System.out.println("sum = "+sum);// 5050}}🔁 for 循环的执行顺序
for (初始化; 条件判断; 迭代) { 循环体; }执行流程:
初始化 → 条件判断(true) → 循环体 → 迭代 → 条件判断(true) → ... ↘ 条件判断(false) → 结束循环图示理解:
3.4 增强for循环(for-each)
类似C/C++的范围for
用于遍历数组或集合:
publicclassTest{publicstaticvoidmain(String[]args){int[]arr={1,2,3,4,5};// 普通for循环for(inti=0;i<arr.length;i++){System.out.println(arr[i]);}// 增强for循环for(intnum:arr){System.out.println(num);}}}⚠️for each循环的局限性:
- 无法获取索引
- 无法修改数组元素的值(因为是值传递)
- 无法删除元素
int[]arr={1,2,3};for(intnum:arr){num=0;// 这不会改变数组!}System.out.println(Arrays.toString(arr));// [1, 2, 3]
4️⃣ break 和 continue 😏
4.1 break — 跳出整个循环
publicclassTest{publicstaticvoidmain(String[]args){for(inti=1;i<=10;i++){if(i==5){break;// 跳出循环}System.out.println("i = "+i);}// 输出:1 2 3 4}}4.2 continue — 跳过本次循环
publicclassTest{publicstaticvoidmain(String[]args){for(inti=1;i<=5;i++){if(i==3){continue;// 跳过本次}System.out.println("i = "+i);}// 输出:1 2 4 5}}4.3 带标签的 break(了解)
这个用得很少
Java 支持带标签的 break,可以跳出多层循环:
publicclassTest{publicstaticvoidmain(String[]args){outer:// 标签for(inti=1;i<=3;i++){for(intj=1;j<=3;j++){if(i==2&&j==2){breakouter;// 跳出外层循环}System.out.println("i = "+i+", j = "+j);}}// 输出:// i = 1, j = 1// i = 1, j = 2// i = 1, j = 3// i = 2, j = 1}}5️⃣ 循环嵌套 🤓
循环里面套循环,经典案例:九九乘法表
publicclassTest{publicstaticvoidmain(String[]args){// 打印九九乘法表for(inti=1;i<=9;i++){for(intj=1;j<=i;j++){System.out.printf("%d×%d=%-4d",j,i,i*j);}System.out.println();}}}输出:
1×1=1 1×2=2 2×2=4 1×3=3 2×3=6 3×3=9 ...📊 小结
| 结构 | 关键字 | 特点 |
|---|---|---|
| 顺序结构 | - | 从上到下依次执行 |
| 分支结构 | ifelseswitch | 根据条件选择执行路径 |
| 循环结构 | whiledo-whilefor | 重复执行某段代码 |
| 跳转语句 | breakcontinue | 控制循环的跳出和跳过 |
💡选择哪种循环?
- 知道循环次数 →
for- 不知道循环次数,可能一次都不执行 →
while- 不知道循环次数,至少执行一次 →
do-while- 遍历数组或集合 → 增强
for(for-each)
✍️ 写在最后
逻辑控制是编程的基石,掌握好分支和循环,才能写出灵活的程序。下一篇我们将讲解Java 方法!
如有问题或建议,欢迎在评论区留言交流! ✨