全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-09 6 分钟 ✍️ juanwangdev

if-else语句

if-else是Java最基本的条件分支语句。

if语句

单if语句

条件为true时执行代码块。

Java
int age = 25;

if (age >= 18) {
    System.out.println("成年人");
}

// 条件为false时跳过代码块

if语句语法

Java
if (条件) {
    // 条件为true执行的代码
}

// 条件必须是boolean表达式

单行代码省略大括号

Java
int score = 85;

// 单行可省略大括号(不推荐)
if (score >= 60)
    System.out.println("及格");

// 推荐始终使用大括号
if (score >= 60) {
    System.out.println("及格");
}

if-else语句

双分支结构

Java
int age = 15;

if (age >= 18) {
    System.out.println("成年人");
} else {
    System.out.println("未成年");
}
// 输出:未成年

if-else语法

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

// 必定执行其中一个分支

使用示例

Java
int score = 55;

if (score >= 60) {
    System.out.println("通过");
} else {
    System.out.println("未通过");
}

// 奇偶判断
int n = 7;
if (n % 2 == 0) {
    System.out.println("偶数");
} else {
    System.out.println("奇数");
}

if-else if-else多分支

多分支结构

Java
int score = 85;

if (score >= 90) {
    System.out.println("优秀");
} else if (score >= 80) {
    System.out.println("良好");
} else if (score >= 60) {
    System.out.println("合格");
} else {
    System.out.println("不合格");
}
// 输出:良好

多分支语法

Java
if (条件1) {
    // 条件1为true执行
} else if (条件2) {
    // 条件1为false且条件2为true执行
} else if (条件3) {
    // 条件1、2为false且条件3为true执行
} else {
    // 所有条件为false执行
}

多分支执行流程

Java
从上到下依次判断:
- 条件1为true → 执行代码块1,结束
- 条件1为false → 判断条件2
- 条件2为true → 执行代码块2,结束
- ...
- 所有条件为false → 执行else代码块

多分支示例

Java
int day = 3;

if (day == 1) {
    System.out.println("星期一");
} else if (day == 2) {
    System.out.println("星期二");
} else if (day == 3) {
    System.out.println("星期三");
} else if (day == 4) {
    System.out.println("星期四");
} else if (day == 5) {
    System.out.println("星期五");
} else if (day == 6) {
    System.out.println("星期六");
} else if (day == 7) {
    System.out.println("星期日");
} else {
    System.out.println("无效");
}

条件表达式要求

必须是boolean

Java
int a = 10;

// 正确:boolean表达式
if (a > 5) { }
if (a == 10) { }
if (a > 5 && a < 20) { }

// 错误:非boolean表达式
// if (a) { }       // 错误:int不是boolean
// if (a = 10) { }  // 错误:赋值表达式返回int

常见错误

Java
// 错误:误用赋值
// if (x = 5) { }   // 错误:x=5返回int

// 正确:使用比较
if (x == 5) { }

// 错误:误用位运算
// if (flags & 1) { }  // 错误:返回int

// 正确:使用逻辑或比较结果
if ((flags & 1) != 0) { }

嵌套if语句

if内嵌if

Java
int age = 25;
boolean hasLicense = true;

if (age >= 18) {
    if (hasLicense) {
        System.out.println("可以开车");
    } else {
        System.out.println("需考取驾照");
    }
} else {
    System.out.println("未成年不能开车");
}

嵌套示例

Java
int score = 85;
boolean attended = true;

if (score >= 60) {
    if (attended) {
        System.out.println("通过且有出席记录");
    } else {
        System.out.println("通过但无出席记录");
    }
} else {
    if (attended) {
        System.out.println("未通过但有出席记录");
    } else {
        System.out.println("未通过且无出席记录");
    }
}

条件组合

使用逻辑运算符

Java
int age = 25;
boolean hasLicense = true;
boolean hasInsurance = true;

// 多条件组合
if (age >= 18 && hasLicense && hasInsurance) {
    System.out.println("符合驾驶条件");
}

// 任一条件满足
if (age < 18 || !hasLicense) {
    System.out.println("不符合条件");
}

// 组合条件
if (age >= 18 && (hasLicense || hasInsurance)) {
    System.out.println("成年且至少一项证件");
}

复杂条件示例

Java
int score = 85;
int attendance = 90;

if (score >= 60 && attendance >= 80) {
    System.out.println("合格");
} else if (score >= 50 && attendance >= 70) {
    System.out.println("补考");
} else {
    System.out.println("不合格");
}

if-else最佳实践

条件顺序

Java
// 易满足条件放前面(常见情况优先)
if (score >= 60) {
    // 大多数情况
} else {
    // 少数情况
}

// 条件按逻辑范围排列
if (score >= 90) {
    // 优秀
} else if (score >= 80) {
    // 良好(90已排除)
} else if (score >= 60) {
    // 合格(80已排除)
} else {
    // 不合格(60已排除)
}

避免深层嵌套

Java
// 不推荐:深层嵌套难读懂
if (a > 0) {
    if (b > 0) {
        if (c > 0) {
            System.out.println("abc都正");
        }
    }
}

// 推荐:合并条件
if (a > 0 && b > 0 && c > 0) {
    System.out.println("abc都正");
}

// 或提前返回
if (a <= 0) return;
if (b <= 0) return;
if (c <= 0) return;
System.out.println("abc都正");

使用大括号

Java
// 推荐:始终使用大括号
if (condition) {
    doSomething();
}

// 不推荐:省略大括号
if (condition)
    doSomething();  // 容易出错

if-else与三元运算符

简单情况用三元运算符

Java
// 简单二选一:三元运算符简洁
int max = a > b ? a : b;
String msg = valid ? "有效" : "无效";

// 等价的if-else
int max2;
if (a > b) {
    max2 = a;
} else {
    max2 = b;
}

复杂情况用if-else

text
// 多条语句:必须用if-else
if (valid) {
    saveData();
    sendMessage();
    logSuccess();
} else {
    showError();
    logFailure();
}

要点总结

  • if语句:条件为true执行代码块
  • if-else:双分支,必定执行其中一个
  • if-else if-else:多分支,从上到下判断
  • 条件必须是boolean表达式
  • 单行代码可省略大括号(不推荐)
  • 推荐始终使用大括号
  • else if可以有多个
  • else可选,放在最后
  • 嵌套if处理复杂逻辑
  • 条件可用逻辑运算符组合
  • 简单二选一可用三元运算符
  • 避免深层嵌套,合并条件

📝 发现内容有误?点击此处直接编辑

← 上一篇 for循环
下一篇 → switch语句
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库