流程控制:分支与循环
核心结论:分支(if/switch)用于根据条件执行不同逻辑,循环(for/while/do-while)用于重复执行代码块,二者结合可覆盖绝大多数程序逻辑场景。
一、分支结构:实现逻辑判断
分支结构根据条件真假,决定执行不同的代码路径,常用 if 和 switch 两种语法。
1. if 分支(灵活判断,支持复杂条件)
适用于范围性、多条件组合的判断,可嵌套使用,代码开发中建议以else结尾。
// 基础 if-else(二选一逻辑)
int score = 85;
if (score >= 60) {
System.out.println("成绩合格");
} else {
System.out.println("成绩不合格");
}
// 多条件 if-else if-else(多选一逻辑)
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 80) {
System.out.println("良好");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
// 嵌套 if(条件下的子判断)
if (score >= 60) {
if (score >= 80) {
System.out.println("合格且表现良好");
} else {
System.out.println("合格但需提升");
}
}else {
System.out.println("不及格");
}
2. switch 分支(固定值匹配,结构清晰)
适用于单个变量与多个固定值的匹配判断,支持 byte、short、int、char 及 String 类型。
String grade = "B";
switch (grade) {
case "A":
System.out.println("优秀");
break; // 终止当前分支,避免穿透
case "B":
System.out.println("良好");
break;
case "C":
System.out.println("及格");
break;
default: // 所有case不匹配时执行
System.out.println("不及格");
}
二、循环结构:实现重复执行
循环结构根据条件重复执行代码块,常用 for、while、do-while 三种语法,核心差异在于循环条件的判断时机和语法简洁度。
1. for 循环(已知循环次数,语法紧凑)
适用于明确循环起始、结束条件和步长的场景,变量声明、条件判断、步长更新集中在一行。
// 基础 for(遍历1-10)
for (int i = 1; i <= 10; i++) {
System.out.println("循环第" + i + "次");
}
// 增强 for(遍历数组/集合,简化语法)
String[] fruits = {"苹果", "香蕉", "橙子"};
for (String fruit : fruits) {
System.out.println("水果:" + fruit);
}
2. while 循环(未知循环次数,先判断后执行)
适用于循环次数不确定,需先验证条件再执行的场景,条件表达式在循环体之前。
// 示例:计算1-100的和
int sum = 0;
int num = 1;
while (num <= 100) { // 条件为true时执行循环体
sum += num;
num++; // 手动更新循环变量,避免死循环
}
System.out.println("1-100的和:" + sum);
3. do-while 循环(未知循环次数,先执行后判断)
与 while 类似,但循环体至少执行一次,条件表达式在循环体之后。
// 示例:让用户输入正确密码,至少提示一次
String password;
do {
System.out.print("请输入密码:");
password = "123456"; // 模拟用户输入
} while (!password.equals("123456")); // 密码错误则重复提示
System.out.println("密码正确,登录成功");
三、分支与循环的结合使用
实际开发中,分支常嵌套在循环内,实现 “重复执行 + 条件筛选” 的复杂逻辑。
// 示例:遍历1-50,输出所有偶数,且能被3整除的数标记为"特殊偶数"
for (int i = 1; i <= 50; i++) {
if (i % 2 == 0) { // 分支:判断是否为偶数
if (i % 3 == 0) { // 嵌套分支:判断是否为特殊偶数
System.out.println(i + "(特殊偶数)");
} else {
System.out.println(i);
}
}
}