06 Java流程控制

86 阅读3分钟

流程控制:分支与循环

核心结论:分支(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);
        }
    }
}