1. if 语句
1.1 语法
当我们需要根据给定的条件来决定是否执行一段代码时,if
语句就派上用场了。if
块仅在与其关联的布尔表达式为 true
时执行。if
块的结构如下:
- 1
- 2
- 3
大括号中包含的内容就称为语句块。
1.2 实例
我们来看一个 if
语句的实例:
运行结果:
- 1
当条件age >= 18
成立时,也就是布尔表达式计算结果为 true
(真),if
语句块会执行。显然上面实例中 age
变量的值为 18,条件是成立的,执行程序,屏幕上将会打印 “在中国你已经成年”。
如果语句块内只有一条语句,我们也可以去掉花括号 {}
:
- 1
- 2
当然,即使 if
语句块只有一条语句,也并不推荐这种不易于阅读的写法。
2. if … else … 语句
2.1 语法
if
语句可以结合 else
来使用,当布尔表达式计算结果为 false
(假)时,else
语句块将会执行。
if .. .else
语句用于有条件地执行两个代码块的其中一个,具体执行哪一个代码块,取决于布尔条件的结果。
- 1
- 2
- 3
- 4
- 5
2.2 实例
改写上面 if
语句的代码:
运行结果:
- 1
我们将变量 age
赋值为 15,并且在 if
语句块的后面加了一段 else {...}
语句块。这个时候,条件 age >= 18
的计算结果就为 false
了,程序将会执行 else
语句块中的代码。执行代码,屏幕将会打印 "在中国你还未成年"。
也就是说上面的代码可以使用三目运算符来实现同样的功能。实例如下:
3. if … else if … else 语句
3.1 语法
- 1
- 2
- 3
- 4
- 5
- 6
- 7
3.2 实例
if
语句可以搭配任意多数量的 else if
语句使用,但是只能有一个 else
。下面我们来看一段代码:
运行结果:
- 1
3.3 嵌套 if … else 语句
你也可以在另一个 if
或者 else if
语句中使用 if
或者 else if
语句:
- 1
- 2
- 3
- 4
- 5
- 6
我们来看一个嵌套语句的实例:
运行结果:
- 1
- 2
4. switch 语句
4.1 语法
switch
条件语句可以理解为简写版的多个 if .. else
语句。switch
语句的语法如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
switch case 语句有如下规则:
- switch 语句中的变量类型可以是:
byte
、short
、int
、char
或者String
; - switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号;
- case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量;
- 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句;
- 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不一定要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句;
- switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。
4.2 实例
我们先来看下面的一个简单实例:
运行结果:
- 1
从 JDK5 开始,switch
语句可以与 枚举值一起使用。 例如,下面是根据数字显示对应星期几的实例代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
从 JDK8 开始,switch
语句可以与 String
值一起使用:
- 1
5. 小结
在 Java 中,条件语句主要有 if
语句和 switch
语句两种。在实际的编码中,条件语句非常常用,要根据合适的场景选择使用,例如对于多个 ==
判断的情况下,使用 switch
语句就更加清晰。而对于复杂的条件表达式,选择 if
语句就更适合。
对于 if
语句的使用,建议:
- 每个分支都要用
{}
括起来; - 当有多个
if ... else
的时候,要注意判断顺序,把可能性越大的分支越排在越前面; if ... else
语句的嵌套层级不要太深。
对于 switch
语句的使用,建议:
- 每个分支都不要漏写
break
; - 总是写上
default
分支。