第12章

Java if...else语句

掌握条件判断语句的语法、嵌套使用和最佳实践

学习目标

if...else语句类型详解

在Java编程中,if...else语句是最基本的条件控制结构。它允许程序根据不同的条件执行不同的代码块,是实现程序逻辑分支的重要工具。

基本if语句

语法示例:
if (条件表达式) {
    // 条件为true时执行的代码
}
  • 只有当条件为true时才执行代码块
  • 条件表达式必须返回boolean值
  • 适合单一条件判断
  • 可以省略大括号(但不推荐)

if...else语句

语法示例:
if (条件表达式) {
    // 条件为true时执行
} else {
    // 条件为false时执行
}
  • 提供两个分支选择
  • 必定会执行其中一个分支
  • 适合二选一的场景
  • 逻辑清晰,易于理解

多分支if...else if...else

语法示例:
if (条件1) {
    // 条件1为true时执行
} else if (条件2) {
    // 条件2为true时执行
} else {
    // 所有条件都为false时执行
}
  • 支持多个条件判断
  • 按顺序检查条件
  • 找到第一个true就执行并退出
  • else分支是可选的

嵌套if...else语句

语法示例:
if (外层条件) {
    if (内层条件) {
        // 嵌套代码块
    } else {
        // 内层else
    }
} else {
    // 外层else
}
  • 可以实现复杂的逻辑判断
  • 支持多层嵌套结构
  • 注意代码的可读性
  • 避免过深的嵌套

条件运算符(三元运算符)

语法示例:
变量 = (条件表达式) ? 值1 : 值2;

// 等价于
if (条件表达式) {
    变量 = 值1;
} else {
    变量 = 值2;
}
  • 简洁的条件判断表达式
  • 适合简单的二选一场景
  • 可以嵌套使用
  • 注意可读性

条件表达式和运算符

在if语句中,条件表达式是核心部分。Java提供了丰富的比较运算符和逻辑运算符来构建复杂的条件表达式。

运算符类型 运算符 说明 示例
比较运算符 == 等于 a == b
!= 不等于 a != b
> 大于 a > b
< 小于 a < b
>= 大于等于 a >= b
<= 小于等于 a <= b
逻辑运算符 && 逻辑与(短路) a > 0 && b > 0
|| 逻辑或(短路) a > 0 || b > 0
! 逻辑非 !isValid

完整代码示例

IfElseBasics.java - if...else语句基础示例
/**
 * if...else语句基础示例
 * 演示条件判断语句的基本语法和使用方法
 * 
 * @author Java学习者
 * @version 1.0
 * @since 2024-01-12
 */
public class IfElseBasics {
    
    public static void main(String[] args) {
        System.out.println("=== if...else语句基础示例 ===");
        
        // 1. 简单的if语句
        int score = 85;
        System.out.println("学生成绩: " + score);
        
        if (score >= 60) {
            System.out.println("恭喜!你及格了!");
        }
        
        // 2. if...else语句
        int age = 18;
        System.out.println("\n年龄: " + age);
        
        if (age >= 18) {
            System.out.println("你已经成年了,可以投票!");
        } else {
            System.out.println("你还未成年,不能投票。");
        }
        
        // 3. if...else if...else语句
        int temperature = 25;
        System.out.println("\n当前温度: " + temperature + "°C");
        
        if (temperature > 30) {
            System.out.println("天气很热,建议开空调!");
        } else if (temperature > 20) {
            System.out.println("天气温和,很舒适!");
        } else if (temperature > 10) {
            System.out.println("天气有点凉,建议穿外套!");
        } else {
            System.out.println("天气很冷,注意保暖!");
        }
    }
}
💻 查看完整代码 - 在线IDE体验

if...else最佳实践

条件判断编写原则

好的做法

// 使用清晰的条件表达式
if (age >= 18 && hasLicense) {
    allowDriving();
}

// 提前返回,减少嵌套
if (!isValid) {
    return;
}
processData();

// 使用大括号提高可读性
if (condition) {
    doSomething();
}
  • 使用清晰的变量名和条件表达式
  • 避免过深的嵌套结构
  • 始终使用大括号
  • 合理使用提前返回

应该避免

// 复杂的条件表达式
if (a > b && c < d || e == f && g != h) {
    // 难以理解
}

// 过深的嵌套
if (condition1) {
    if (condition2) {
        if (condition3) {
            // 太深了!
        }
    }
}

// 省略大括号
if (condition)
    doSomething();
  • 避免复杂的条件表达式
  • 不要嵌套过深
  • 不要省略大括号
  • 避免重复的条件判断

常见应用场景

if...else语句的典型应用

  • 用户输入验证:检查用户输入的数据是否符合要求
  • 权限检查:根据用户角色决定是否允许执行某些操作
  • 数据范围验证:确保数值在有效范围内
  • 状态判断:根据对象或系统的状态执行不同逻辑
  • 错误处理:检测错误条件并采取相应措施
  • 业务逻辑分支:根据业务规则执行不同的处理流程

性能优化建议

  • 将最可能为true的条件放在前面(短路求值)
  • 避免在条件表达式中进行复杂计算
  • 使用局部变量存储重复计算的结果
  • 考虑使用switch语句替代多个if...else if
  • 合理使用逻辑运算符的短路特性

本章小结