【Java】流程控制语句全解析:从入门到实战
大家好呀~ 今天来和大家系统梳理 Java 流程控制语句的核心知识点!作为 Java 入门的基础重点,流程控制就像程序的 “导航系统”,能帮我们控制代码执行的顺序、条件和循环逻辑。这篇文章会结合实际代码示例,把 if-else、switch、循环语句等讲明白,新手也能轻松看懂~
一、条件判断:if-else 家族
条件判断是程序最常用的逻辑,根据不同条件执行不同代码块,if-else 家族主要包括 4 种形式:
1. 基础 if 语句
满足条件才执行代码块,适合单一条件判断:
// 示例:判断成绩是否及格
int score = 85;
if (score >= 60) {
System.out.println("成绩及格,继续加油~");
}
2. if-else 语句
二选一逻辑,满足条件执行 if 块,否则执行 else 块。这里分享网页中提到的闰年判断经典案例:
// 闰年规则:能被4整除但不被100整除,或能被400整除
int year = 2024;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
System.out.println(year + "年是闰年,有366天");
} else {
System.out.println(year + "年是平年,有365天");
}
3. if-else-if 语句
多条件分支,适合区间判断(比如成绩评级):
int score = 92;
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 80) {
System.out.println("良好");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("需要补考");
}
4. 嵌套 if 语句
在 if 块中再嵌套 if-else,处理复杂条件(比如登录验证):
String username = "yunyang";
String password = "123456";
if (username.equals("yunyang")) {
if (password.equals("123456")) {
System.out.println("登录成功!");
} else {
System.out.println("密码错误");
}
} else {
System.out.println("用户名不存在");
}
二、多值匹配:switch 语句
当需要判断一个变量与多个固定值匹配时,用 switch 比 if-else-if 更简洁。注意事项:变量类型支持 byte/short/int/char、包装类、字符串、枚举,case 值唯一且类型一致。
实战示例:菜单选择
String menu = "Java";
switch (menu) {
case "Java":
System.out.println("选择了Java课程,开始学习流程控制~");
break; // 跳出switch,不执行后续case
case "MySQL":
System.out.println("选择了MySQL课程,学习数据库操作");
break;
case "Linux":
System.out.println("选择了Linux课程,掌握服务器部署");
break;
default: // 所有case不匹配时执行
System.out.println("暂无该课程,敬请期待");
}
敲黑板:如果省略
break,会触发 “穿透效应”,继续执行下一个 case 的代码哦!
三、循环执行:重复操作的三种方式
循环用于重复执行同一代码块,Java 提供 for、while、do-while 三种循环,适用场景不同:
1. for 循环:固定次数循环首选
普通 for 循环(初始化变量→条件判断→自增 / 自减):
// 示例:打印1-10的数字
for (int i = 1; i<= 10 ; i++) {
System.out.print(i + " "); // 输出:1 2 3 4 5 6 7 8 9 10
}
for-each 循环(遍历数组 / 集合,无需索引):
// 遍历字符串数组
String[] courses = {"Java", "MySQL", "Linux"};
for (String course : courses) {
System.out.println("当前课程:" + course);
}
无限 for 循环(需手动添加 break 终止):
// 示例:每隔1秒打印一次,5次后停止
int count = 0;
for (;;) {
System.out.println("循环中...");
count++;
if (count == 5) {
break; // 满足条件跳出循环
}
try {
Thread.sleep(1000); // 休眠1秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
2. while 循环:不确定次数循环
先判断条件,满足才执行循环体(可能一次都不执行):
// 示例:猜数字游戏(猜中为止)
int target = 7;
Scanner scanner = new Scanner(System.in);
int guess;
while (true) {
System.out.print("请猜一个1-10的数字:");
guess = scanner.nextInt();
if (guess == target) {
System.out.println("猜对啦!");
break;
} else if (guess < target){
System.out.println("太小了,再试试~");
} else {
System.out.println("太大了,再试试~");
}
}
3. do-while 循环:至少执行一次
先执行循环体,再判断条件(无论条件是否满足,首次必执行):
// 示例:强制用户输入正确的密码(至少提示一次)
String correctPwd = "yunyang123";
String inputPwd;
Scanner scanner = new Scanner(System.in);
do {
System.out.print("请输入密码:");
inputPwd = scanner.next();
if (!inputPwd.equals(correctPwd)) {
System.out.println("密码错误,请重新输入!");
}
} while (!inputPwd.equals(correctPwd));
System.out.println("密码正确,进入系统~");
四、循环控制:break 与 continue
1. break:强制终止循环 /switch
- 终止当前循环(嵌套循环中仅终止内层循环)
- 可用于所有循环和 switch 语句:
// 示例:找到数组中的目标元素后终止循环
int[] nums = {2, 4, 6, 8, 10};
int target = 6;
for (int num : nums) {
if (num == target) {
System.out.println("找到目标元素:" + num);
break; // 找到后立即跳出循环
}
System.out.println("当前元素:" + num);
}
2. continue:跳过本次循环,进入下一次
- 不终止循环,仅跳过当前迭代的剩余代码:
// 示例:打印1-10中的奇数(跳过偶数)
for (int i = 1; i ++) {
if (i % 2 == 0) {
continue; // 偶数直接跳过,不执行后续打印
}
System.out.print(i + " "); // 输出:1 3 5 7 9
}
总结
Java 流程控制语句是编程的基础核心,记住这些关键区别:
- 条件判断:
if-else适合区间 / 复杂条件,switch适合多固定值匹配 - 循环选择:
for固定次数,while不确定次数(可能不执行),do-while至少执行一次 - 循环控制:
break终止循环,continue跳过本次
建议大家多动手写代码实践,比如用循环实现求和、遍历集合,用条件判断处理业务逻辑~ 如果你有具体的应用场景或疑问,欢迎在评论区交流呀!



