2025-12-7 周六 晴
基础流程控制
基础流程控制的顺序结构、分支结构、循环结构这三个是所有编程语言都有的
顺序结构
从上到下,从左到右依次执行,不跳不漏
public class SequenceDemo { public static void main(String[] args) { // 顺序执行:先执行1,再执行2,最后执行3 int a = 10; // 第一步 int b = 20; // 第二步 int sum = a + b; // 第三步 System.out.println(sum); // 第四步 } }分支结构
分支也叫判断,大体一共分两种 if 和 switch
if
- 第一种格式:
if(关系表达式){
语句体;
}
//当然如果语句体中只有一句,是可以省略大括号的(但是还是建议写上)
- 第二种格式:
if (关系表达式){
语句体1;
}else{
语句体2;
}
//如果关系表达式是true则执行语句体1,否则执行语句体2
- 第三种格式:
if(关系表达式){
语句体1;
}else if{
语句体2;
}......n{
...语句体n;
}esle{
语句体n+1;
}
//表示根据关系表达式对应的条件来执行符合当前的语句体
switch
表示多种选择一种的情况。
- 最基本的格式:
//这里的表达式不是判断了,而是一个具体的值然后同后面case的值进行匹配,
//符合则执行相应的语句体
switch(表达式){
case 值1: 语句体1;
break;
case 值2: 语句体2;
break;
... ...
default:
语句体n+1;
break;
}
- case的穿透情况:
下面利用ai生成,帮助了解case穿透即可
import java.util.Scanner; /** * 利用switch穿透+键盘录入判断星期几是否为工作日/休息日 */ public class WeekdayCheck { public static void main(String[] args) { // 1. 创建Scanner对象,用于键盘录入 Scanner sc = new Scanner(System.in); // 2. 提示用户输入 System.out.println("请输入数字(1=周一,2=周二,...,7=周日):"); // 3. 接收用户输入的整数 int week = sc.nextInt(); // 4. 利用switch穿透判断并输出结果 switch (week) { // 核心:周一到周五的case不写break,穿透到case5执行统一逻辑 case 1: case 2: case 3: case 4: case 5: System.out.println("星期" + week + ":工作日,加油搬砖!"); break; // 执行完工作日逻辑后,跳出switch(终止穿透) // 周六、周日的case穿透,执行case7的统一逻辑 case 6: case 7: System.out.println("星期" + week + ":休息日,好好休息!"); break; // 执行完休息日逻辑后,跳出switch // 处理非法输入(非1-7的数字) default: System.out.println("输入错误!请输入1-7之间的数字(1=周一,7=周日)"); } // 5. 关闭Scanner,释放资源 sc.close(); } }- switch的其他知识点
- default的位置放最后,有时是可以省略的但是不建议省略
- switch和if第三种格式的使用场景
- switch:有限个一一列举进行匹配
- if三:没有具体,只是一个范围
- switch的新特性(ai生成,下面的运行效果和上面的输出几乎完全一样,但是大大简化)
public class Weekday { public static void main(String[] args) { int week = 6; // 可替换为1-7/其他数字测试 // 核心:Switch表达式直接赋值,覆盖所有新特性 String result = switch (week) { case 1,2,3,4,5 -> "工作日"; // 多值case+case-> 直接返回 case 6,7 -> "休息日"; // 周六周日统一分支 default -> { // 多行逻辑用{},yield返回 System.out.println("输入错误:仅支持1-7"); yield "无效星期"; } }; System.out.println("星期" + week + ":" + result); } } //直接省略了break等语句,大大简化了代码,这个新特性是JDK12提出的循环结构【2025-12-8】
三种:for 、while 、do...while(第三种基本不用了)
三种循环
- for循环格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体;
}
例:在控制台上打印0-10
for(int i = 0; i <= 10; i ++){
System.out.println(i)
}
小细节:次数.fori 回车快速写好for循环
- while循环格式:
初始化语句;
while(条件判断语句){
循环体;
条件控制语句;
}
例:在控制台上打印0-10
int i = 0;
while (i <= 10){
System.out.println(i)
i++;
}
小细节:win + r 然后 calc 回车快速调出计算器
- do...while循环格式
初始化语句;
do{
循环体;
条件控制语句;
}while(条件判断语句)
例:在控制台上打印0-10
int i = 0;
do{
System.out.println(i)
i++;
}while(i <= 10)
- 循环注意:
- for与while的运行规则是一样的
- 知道循环范围和循环次数用for
- 不知道结束条件的用while
- do...while无论如何都会先执行一次循环
无限循环
- for的无限循环
for(;;){
System.out.println(1);
}
- while的无限循环
while(true){
System.out.println(1);
}
- do...while的无限循环
do{
System.out.println(1);
}while(true)
注意:无限循环的下面不能再写任何东西,因为执行不到了
跳转控制语句
- continue:结束本次循环
- break:结束整个循环