当前位置: 首页 > news >正文

【Java 】逻辑控制 0基础的快来

🧭 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 的三种程序控制结构:顺序结构分支结构循环结构,以及breakcontinue的使用技巧。适合 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) → 结束循环

图示理解:

true

初始化

条件判断

循环体

迭代


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 方法

如有问题或建议,欢迎在评论区留言交流! ✨

http://www.gsyq.cn/news/1464594.html

相关文章:

  • 录音转写权威指南
  • 十分钟用快马打造国内场景chatgpt式智能客服原型
  • Yelp评论爬虫实战:用BeautifulSoup绕过动态加载与反爬
  • SpringBoot+Vue流动夜市管理信息系统源码+论文
  • 从零理解CMOS Sensor的曝光与增益:为什么你的手机夜景照片噪点多?
  • 书匠策AI:论文写作界的“超级魔法师”,解锁期刊论文新技能!
  • 2025_NIPS_GPT4Tools: Teaching Large Language Model to Use Tools via Self-instruction
  • HarmonyOS 6 Popup 气泡弹窗组件使用文档
  • 高效HEIC缩略图方案:Windows HEIC Thumbnail Provider技术解析
  • HarmonyOS 6 AtomicServiceTabs 纯图标样式使用文档
  • 除了verify=False,安全处理requests库SSL证书验证的3种更优实践(附避坑指南)
  • 数据科学家不是建模工程师:一份真实工作流的生存手记
  • 数据科学中的推断统计实战:从AB测试到置信区间
  • 从外卖配送区到共享单车电子围栏:JTS实战解析空间关系判断(Contains/Within/Intersects)
  • 企业级AI分类系统上线倒计时72小时:紧急补漏清单(含权限穿透、语义漂移、冷启动三重熔断机制)
  • 社区搜索技术:从同质图到异质图的算法演进
  • MTKClient终极指南:联发科设备刷机救砖专业工具详解
  • 从数电实验箱到FPGA开发板:重温74LS138三八译码器,并用它搭建全加器电路
  • 别再手动修模型了!用Python的scipy.spatial.Delaunay快速搞定点云三角化(附实战代码)
  • 从HFSS仿真到PCB打样:手把手教你搞定四臂螺旋天线的移相功分网络
  • 别再凭感觉绕电感了!手把手教你用200股李兹线给T106-2磁环绕制4.5uH电感(附计算与实测翻车记录)
  • 面试必问!!!:整数在计算机中是怎么保存的?
  • Java:Java后端开发,本地开发环境,服务器部署环境,运维支撑环境 都需要哪些类别的工具或技术 / Java后端三大环境完整清单 202606
  • 论文AIGC率怎么降?2026实测SpeedAI领跑多平台横评 - 仙仙学姐测评
  • Inference与Prediction的本质区别:从机器学习工程实践看系统层与算法层的分界
  • 115. 全机型救砖方案汇总|高通EDL/MTK刷写/苹果DFU黑砖修复实操教程
  • 2026年靠谱的郑州家装淋浴房/淋浴房/郑州成品淋浴房/郑州民宿淋浴房高口碑品牌推荐 - 品牌宣传支持者
  • 从充电场站到干线物流:千方 ESG 报告里的多场景节能探索
  • 快速验证物联网想法:用快马一键生成esp8266 wifi连接原型代码
  • TradingAgents 新手快速上手指南