核心概念
if 语句允许你的程序根据一个条件的真假来决定是否执行某段代码,这个条件通常是一个布尔表达式,其结果只能是 true 或 false。

if 语句
if 语句是最简单的形式,如果条件为 true,则执行 if 代码块中的语句;如果条件为 false,则直接跳过 if 代码块,继续执行后面的代码。
语法结构
if (条件表达式) {
// 如果条件表达式为 true,则执行这里的代码块
// 代码块可以包含一条或多条语句
}
示例
public class IfExample {
public static void main(String[] args) {
int age = 20;
// 检查年龄是否大于等于18
if (age >= 18) {
System.out.println("你已经成年了。");
}
System.out.println("程序继续执行...");
}
}
输出结果:
你已经成年了。
程序继续执行...
分析:
因为 age 的值是 20,age >= 18 这个条件为 true,if 代码块内的 System.out.println(...) 被执行了。
if-else 语句
if-else 语句在 if 的基础上增加了一个 else 分支,当 if 的条件为 false 时,程序会执行 else 代码块中的语句,这提供了“二选一”的逻辑。

语法结构
if (条件表达式) {
// 如果条件表达式为 true,则执行这里的代码块
} else {
// 如果条件表达式为 false,则执行这里的代码块
}
示例
public class IfElseExample {
public static void main(String[] args) {
int score = 55;
// 检查分数是否及格
if (score >= 60) {
System.out.println("恭喜,你及格了!");
} else {
System.out.println("很遗憾,你没有及格。");
}
System.out.println("程序结束。");
}
}
输出结果:
很遗憾,你没有及格。
程序结束。
分析:
因为 score 的值是 55,score >= 60 这个条件为 false,所以程序跳过了 if 代码块,转而执行 else 代码块中的语句。
if-else if-else 语句
当需要处理多个条件,并且这些条件是互斥(即只有一个条件会为 true)的时候,可以使用 if-else if-else 结构,程序会从上到下依次检查每个 if 或 else if 的条件,一旦找到第一个为 true 的条件,就执行其对应的代码块,然后跳过整个 if-else if-else 结构的剩余部分。
语法结构
if (条件1) {
// 如果条件1为 true,则执行这里的代码块
} else if (条件2) {
// 如果条件1为 false,且条件2为 true,则执行这里的代码块
} else if (条件3) {
// 如果条件1和条件2都为 false,且条件3为 true,则执行这里的代码块
} else {
// 如果以上所有条件都为 false,则执行这里的代码块
}
示例
public class IfElseIfElseExample {
public static void main(String[] args) {
int score = 85;
if (score >= 90) {
System.out.println("成绩等级:A");
} else if (score >= 80) {
System.out.println("成绩等级:B");
} else if (score >= 60) {
System.out.println("成绩等级:C");
} else {
System.out.println("成绩等级:D");
}
}
}
输出结果:

成绩等级:B
分析:
- 程序首先检查
score >= 90。85 >= 90为false,所以跳过。 - 接着检查
else if (score >= 80)。85 >= 80为true,所以执行这个代码块,打印 "成绩等级:B"。 - 一旦代码块被执行,整个
if-else if-else结构就结束了,后面的else if (score >= 60)和else都不会再被检查。
if 语句的嵌套
你可以在一个 if 语句的代码块内部再放置另一个 if 语句,这被称为嵌套,这用于处理更复杂的逻辑判断。
示例
public class NestedIfExample {
public static void main(String[] args) {
int age = 25;
boolean isStudent = true;
// 外层 if 检查年龄
if (age >= 18) {
System.out.println("你已经成年了。");
// 内层 if 检查是否是学生
if (isStudent) {
System.out.println("并且你是一名学生,可以享受学生优惠。");
} else {
System.out.println("但你不是一名学生。");
}
} else {
System.out.println("你还未成年。");
}
}
}
输出结果:
你已经成年了。
并且你是一名学生,可以享受学生优惠。
最佳实践和注意事项
-
使用大括号 即使
if或else代码块只有一条语句,也强烈建议使用大括号 ,这可以避免因后续添加代码而导致的逻辑错误,并且让代码更清晰、更易读。不推荐 (容易出错):
if (age > 18) System.out.println("成年了"); System.out.println("可以投票"); // 这行代码实际上不在 if 语句内推荐 (清晰安全):
if (age > 18) { System.out.println("成年了"); System.out.println("可以投票"); } -
布尔表达式
if后面的括号里必须是布尔表达式,直接在括号里放一个布尔变量是正确的,但放一个整数或其他类型会导致编译错误。boolean isReady = true; if (isReady) { // 正确 // ... } int status = 1; // if (status) { // 错误!不兼容的类型: int 无法转换为 boolean // ... // } -
else与if的配对else总是和它最近的、尚未配对的if语句配对,在嵌套结构中要特别注意。int x = 10; int y = 20; if (x == 10) if (y == 20) System.out.println("x is 10 and y is 20"); else // 这个 else 属于哪个 if?是内层的 if (y == 20) System.out.println("x is 10 but y is not 20");如果想让
else属于外层的if,必须使用大括号来明确作用域:if (x == 10) { if (y == 20) { System.out.println("x is 10 and y is 20"); } } else { // else 明确属于外层的 if (x == 10) System.out.println("x is not 10"); }
| 结构 | 描述 | 示例 |
|---|---|---|
| if | 当条件为 true 时执行代码。 |
if (age > 18) { ... } |
| if-else | 在 true 和 false 两种情况中选择一个执行。 |
if (score >= 60) { ... } else { ... } |
| if-else if-else | 从多个互斥条件中选择第一个为 true 的执行。 |
if (grade == 'A') { ... } else if (grade == 'B') { ... } else { ... } |
| 嵌套 if | 在 if 语句内部再使用 if 语句,处理复杂逻辑。 |
if (age > 18) { if (isStudent) { ... } } |
掌握 if 语句是编程的基础,它能让你写出能够根据不同情况做出不同反应的智能程序。
