2.2 条件分支
条件分支(conditional branch)让程序可以根据不同情况执行不同代码。Java 使用 if、else if、else 来描述这些分支,并用大括号 {} 把属于同一个分支的语句组织成代码块(block)。
if
if 语句会检查一个条件。如果条件为真,Java 执行大括号里的语句;如果条件为假,就跳过这段代码。
java
Scanner input = new Scanner(System.in);
int age = input.nextInt();
if (age > 0 && age < 18) {
System.out.println("未成年人");
}一次可能的运行结果:
text
17
未成年人在 Java 中,属于 if 的语句要放在大括号 {} 里。即使只有一行,也建议加上大括号,避免以后扩展时出错。
正在加载概念检查...
if-else
if-else 用于二选一:条件成立时执行 if,否则执行 else。
下面是一个闰年判断例子。一个年份是闰年,需要满足以下条件之一:
- 能被 4 整除,并且不能被 100 整除。
- 或者能被 400 整除。
java
Scanner input = new Scanner(System.in);
int year = input.nextInt();
boolean isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
if (isLeapYear) {
System.out.println("闰年");
} else {
System.out.println("平年");
}一次可能的运行结果:
text
2020
闰年把复杂条件保存到 isLeapYear 里,可以让 if 那一行更容易读。在真实程序中,这通常比把一长串条件直接塞进 if 更容易维护。
正在加载概念检查...
if-else if-else
当情况超过两种时,可以使用 if-else if-else。Java 会从上到下检查条件,执行第一个为真的分支,然后跳过后面的分支。
java
Scanner input = new Scanner(System.in);
char c = input.next().charAt(0);
if (c >= 'a' && c <= 'z') {
System.out.println("小写字母");
} else if (c >= 'A' && c <= 'Z') {
System.out.println("大写字母");
} else if (c >= '0' && c <= '9') {
System.out.println("数字");
} else {
System.out.println("特殊字符");
}一次可能的运行结果:
text
T
大写字母else if 的顺序很重要。更具体、更优先的条件通常应该放在前面,else 用作兜底情况。
正在加载交互实验...
正在加载概念检查...
正在加载本节练习...