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处理复杂逻辑
- 条件可用逻辑运算符组合
- 简单二选一可用三元运算符
- 避免深层嵌套,合并条件
📝 发现内容有误?点击此处直接编辑