源本科技 | 码上会

Java 中的 if-else 语句

2025/12/25
11
0

学习目标

  • 掌握 Java 中 if-else 语句的基本语法与执行逻辑

  • 理解 if-else 如何实现二选一的程序控制流

  • 学会使用嵌套 if 语句处理多层条件判断

  • 能够避免常见的语法错误(如孤立的 else


什么是 if-else 语句?

Java 中的 if-else 语句是一种双向条件分支结构。它根据布尔条件的真假,在两个代码块中选择一个执行

  • 条件为 true → 执行 if

  • 条件为 false → 执行 else

这使得程序能够根据运行时数据做出不同响应。

Java-if-else-660.png

基本语法

if (condition) {
    // 条件为 true 时执行
} else {
    // 条件为 false 时执行
}

注意else 必须紧跟在 if 块之后,且不能单独存在。


基础用法

// Java Program to demonstrate if-else statement
public class IfElse {
    public static void main(String[] args) {
        int n = 10;

        if (n > 5) {
            System.out.println("The number is greater than 5.");
        } else {
            System.out.println("The number is 5 or less.");
        }
    }
}

输出结果

The number is greater than 5.

执行过程

  1. 程序启动,变量 n 被赋值为 10

  2. 判断条件 n > 510 > 5true

  3. 执行 if 块中的输出语句。

  4. 跳过 else 块。

  5. 程序结束。


执行流程

  1. 程序进入 if-else 结构。

  2. 计算条件表达式的布尔值。

  3. 若条件为 true

    • 执行 if 块中的所有语句。

  4. 若条件为 false

    • 执行 else 块中的所有语句。

  5. 无论哪种情况,执行完后都会继续运行 if-else 之后的代码。

[示意图:if-else 流程图]
→ 评估条件 → 是 → 执行 if 块 → 继续后续代码
      ↓ 否
    执行 else 块 → 继续后续代码


嵌套 if 语句

当需要多级条件判断时,可以在一个 if 块内部再写另一个 if 语句,称为嵌套 if

语法

if (condition1) {
    // 外层 if 块
    if (condition2) {
        // 内层 if 块
    }
}

示例:献血资格判断

public class NestedIf {
    public static void main(String[] args) {
        int age = 25;
        double weight = 65.5;

        if (age >= 18) {
            if (weight >= 50.0) {
                System.out.println("You are eligible to donate blood.");
            } else {
                System.out.println("You must weigh at least 50 kilograms to donate blood.");
            }
        } else {
            System.out.println("You must be at least 18 years old to donate blood.");
        }
    }
}

输出结果

You are eligible to donate blood.

逻辑说明

  • 首先检查年龄是否 ≥18。

  • 如果是,再检查体重是否 ≥50 kg。

  • 只有两项都满足,才允许献血。

✅ 这种结构清晰地表达了“先满足 A,再判断 B”的业务规则。


重要注意事项

  • else 不能独立存在:每个 else 必须对应一个前面的 if

  • 花括号建议始终使用:即使只有一行代码,也用 {} 包裹,防止逻辑错误。

  • 避免过深嵌套:超过三层嵌套会降低可读性,可考虑使用 else if 或提前返回(early return)优化。


重点总结

特性

说明

作用

实现二选一分支逻辑

条件类型

必须是布尔表达式

执行规则

trueif 块;falseelse

嵌套支持

支持任意层级的 if 嵌套

常见错误

孤立的 else、省略花括号导致逻辑错误


思考题

  1. 如果将示例中的 age = 16weight = 55.0,程序会输出什么?为什么?

  2. 以下代码是否合法?若合法,输出是什么?

    int x = 3;
    if (x > 0)
        if (x % 2 == 0)
            System.out.println("Even");
    else
        System.out.println("Odd");
    

    (提示:注意 else 的归属)

  3. 在实际开发中,如何避免因省略花括号而导致的“悬空 else”(dangling else)问题?