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

Java流程控制

Java流程控制

  • 一、流程控制就像"道路选择"
    • 1. ​​顺序结构​​ → 直行路
    • 2. ​​分支结构​​ → 十字路口
    • 3. ​​循环结构​​ → 绕圈跑步
  • 二、重点记忆技巧
    • 1. ​​分支结构对比​​
    • 2. ​​循环结构对比​​
    • 3. ​​控制跳转​​
  • 三、常见错误避坑指南
    • 1.​​switch忘记写break​​
    • 2.死循环​​
    • 3.​​浮点数做循环条件​​
  • 四、自我测试
    • 1.用switch实现工作日/休息日判断(1-5工作日,6-7休息日)
      • 代码示例:
      • 代码逻辑:
      • 执行结果示例:
      • 扩展优化(Java 14+ 新语法)
    • 2.用while循环计算1到100的偶数和
      • 方法一代码示例:
      • 代码逻辑:
      • 方法二代码示例
      • 代码逻辑
    • 3.找出下面代码的问题
  • 📌 终极记忆口诀

一、流程控制就像"道路选择"

1. ​​顺序结构​​ → 直行路

System.out.println("第一步"); // 先执行
System.out.println("第二步"); // 再执行

2. ​​分支结构​​ → 十字路口

​​场景:根据天气决定行程​​

// if-else结构
String weather = "晴天";
if(weather.equals("雨天")) {System.out.println("在家看电影");
} else if(weather.equals("雪天")) {System.out.println("堆雪人");
} else {System.out.println("去公园"); // 执行这里
}// 🌟 switch结构(适合固定选项)
int weekDay = 3;
switch(weekDay) {case 1: System.out.println("周一例会"); break;case 2: System.out.println("周二培训"); break;// case 3没有break会继续执行case4!case 3: System.out.println("周三团建");// 这里没有break → 穿透到case4case 4: System.out.println("周四写代码"); // 也会执行break;default: System.out.println("休息日");
}
// 输出:周三团建 → 周四写代码

3. ​​循环结构​​ → 绕圈跑步

​​场景:打印乘法表​​

// 🌟 for循环(明确循环次数)
for(int i=1; i<=9; i++) {for(int j=1; j<=i; j++) {System.out.print(j+"×"+i+"="+(i*j)+"\t");}System.out.println();
}// while循环(不确定次数)
int count = 0;
while(count < 5) {System.out.println("第" + (count+1) + "次尝试");count++;
}// do-while(至少执行一次)
int input;
do {System.out.println("请输入1-100的数字:");input = scanner.nextInt();
} while(input <1 || input >100); // 先执行,再判断

二、重点记忆技巧

1. ​​分支结构对比​​

结构适用场景注意点
if条件范围判断(如分数段)可处理复杂条件
switch固定值匹配(如菜单选项)必须加break防止穿透

2. ​​循环结构对比​​

结构使用场景特点
for已知循环次数(如遍历数组)简洁,控制变量在内部
while未知循环次数(如读取文件)可能一次都不执行
do-while至少要执行一次(如输入验证)先执行,后判断条件

3. ​​控制跳转​​

// break → 彻底停止循环
for(int i=1; i<=10; i++){if(i == 5) break; // 当i=5时直接结束循环System.out.print(i+" "); // 输出:1 2 3 4
}// continue → 跳过当前这次循环
for(int i=1; i<=5; i++){if(i == 3) continue; // 跳过i=3这次循环System.out.print(i+" "); // 输出:1 2 4 5
}

三、常见错误避坑指南

1.​​switch忘记写break​​

→ 导致多个case连续执行(穿透现象)

2.死循环​​

while(true){ // 缺少退出条件System.out.println("无限循环...");
}

3.​​浮点数做循环条件​​

for(double d=0.1; d!=1.0; d+=0.1){} 
// 可能因精度问题导致无限循环

四、自我测试

1.用switch实现工作日/休息日判断(1-5工作日,6-7休息日)

代码示例:

	/*** 用switch实现工作日/休息日判断(1-5工作日,6-7休息日)*/@Testpublic void testDayChecker(){int day = 3;switch(day){case 1:case 2:case 3:case 4:case 5:System.out.println("工作日");break;case 6:case 7:System.out.println("休息日");break;default:System.out.println("无效输入,请输入值-7之间的数字!");}}

代码逻辑:

1.​​变量 day​​

  • 假设输入为整数 1-7,表示星期一到星期日。

​​2.switch 逻辑​​

  • ​​合并 case​​:将 1-5 合并处理为工作日(通过连续写 case 标签实现)。
  • ​​休息日​​:6 和 7 单独处理为休息日。
  • ​​break 关键字​​:确保执行完对应分支后跳出 switch,避免“穿透”到下一个分支。
  • default​​:处理无效输入(如 0 或 8 等非1-7数字)。

执行结果示例:

输入 day = 3 → 输出 工作日
输入 day = 6 → 输出 休息日
输入 day = 9 → 输出 无效输入

扩展优化(Java 14+ 新语法)

	@Testpublic void testDayChecker2(){int day = 7;switch (day) {case 1, 2, 3, 4, 5 -> System.out.println("工作日");case 6, 7 -> System.out.println("休息日");default -> System.out.println("无效输入");}}

优点:

  • 通过合并 case 标签减少重复代码。
  • 始终处理边界条件(如 default 分支)。
  • switch 适用于固定值的匹配判断,比多个 if-else 更清晰。

2.用while循环计算1到100的偶数和

方法一代码示例:

 	/*** 用while循环计算1到100的偶数和* 方法一:通过遍历1-100的每个数字,利用取模运算%判断是否为偶数,再累加到总和中*/@Testpublic void testEvenSum1(){int i = 1;int sum = 0;while(i <= 100){if(i % 2 == 0){sum += i;}i++;}System.out.println("1-100的偶数和为:" + sum);}

代码逻辑:

  • 循环初始化​​:i 从 1 开始,sum 初始化为 0。
  • ​​循环条件​​:i <= 100,确保遍历 1 到 100 的所有数字。
  • 判断逻辑​​:通过 i % 2 == 0 检查当前数字是否为偶数。
  • 累加操作​​:若为偶数,将其值加到 sum。
  • 更新计数器​​:i++ 递增计数器,避免无限循环。

方法二代码示例

	/*** 用while循环计算1到100的偶数和* 方法二:直接从第一个偶数2开始,每次递增2,无需判断直接累加,效率更高*/@Testpublic void testEvenSum2(){int i = 2;int sum = 0;while(i <= 100){sum += i;i += 2;}System.out.println("1-100的偶数和为:" + sum);}

代码逻辑

  • ​​循环初始化​​:i 从 2(第一个偶数)开始,sum 初始化为 0。
  • 循环条件​​:i <= 100,确保遍历到最后一个偶数 100。
  • 累加操作​​:直接累加当前偶数 i 到 sum。
  • ​​更新计数器​​:i += 2 使计数器步长为 2,直接跳到下一个偶数。

3.找出下面代码的问题

	@Testpublic void test1(){int i = 0;while(i < 5)System.out.println(i);i++;//这里会无限循环}

📌 终极记忆口诀

流程控制三兄弟:顺序分支加循环
if判断条件多,switch专治固定值
for循环次数明,while适合不确定
break彻底停循环,continue只跳这一次

http://www.xdnf.cn/news/4739.html

相关文章:

  • 果汁厂通信革新利器:Ethernet/IP转CANopen协议网关
  • 为什么跨境电商要了解固定IP?常见疑问解析
  • 算法竞赛进阶指南.次小生成树
  • 同比和环比有什么区别?同比和环比的计算方法
  • Oracle OCP认证考试考点详解083系列12
  • RISC-V hardfault分析工具,RTTHREAD-RVBACKTRACE
  • C语言 指针(9)
  • 初学者如何获得WordPress技术支持
  • 模拟内存管理
  • 如何添加二级域名
  • Linux操作系统中的通知机制
  • 单片机 + 图像处理芯片 + TFT彩屏 指示灯控件
  • python小记(十四):Python 中 **参数解包:深入理解与应用实践
  • 【java】oop 结课模拟题版
  • 探索大语言模型(LLM):硅基流动+Cherry studio免费白嫖Qwen3模型
  • librosa.load 容易遇到的采样率问题
  • RISC-V入门资料
  • Pyinstaller编译EXE及反编译
  • 在Postman中高效生成测试接口:从API文档到可执行测试的完整指南
  • Linux下的c/c++开发之操作Sqlite3数据库
  • SpringBoot3 + Druid + DynamicDataSource + PgSQL 连接池优化方案
  • Matlab 镍氢电池模型
  • 流批了,低调使用
  • 巧用python之--模仿PLC(PLC模拟器)
  • C++ STL入门:vecto容器
  • 四川安全员考试的内容包括哪些?
  • 2025年微服务架构关键知识点(一):核心原则与演进趋势
  • Web 架构之高可用基础
  • 基于FPGA的血氧和心率蓝牙监测系统设计-max30102
  • SHA系列算法