检查点
使用 `if` 的条件判断
学习如何使用 Kotlin 的 `if` 条件语句,以及比较运算符和逻辑运算符。
对于条件控制流,Kotlin 使用 if 和 when 关键字。if 块的语法与 C 和 Java 相同。类似地,when 关键字类似于这些语言中的 switch,但功能更强大,你将在后续学习中了解这一点。
使用 if 的条件判断
使用 if 的条件判断可以这样写:
1if (planet == "Jupiter") { 2 println("木星的半径是 69,911 公里") 3} else if (planet == "Saturn") { 4 println("土星的半径是 58,232 公里") 5} else { 6 println("没有关于行星 $planet 的数据") 7}
每个条件后跟一个用大括号包围的代码块。可以有任意数量的 else if 块(包括零个),最多只能有一个 else 块。
注意: 在
else块中,通过 字符串插值 将变量planet包含在输出字符串中。只需在变量前加上$即可。更复杂的表达式需要用大括号包裹:"${user.name} 登录了"。
相等性和比较运算符
Kotlin 用于构建条件的运算符如下:
| 运算符 | 含义 |
|---|---|
== | 结构相等(“equals”) |
!= | 结构不相等(“!equals”) |
=== | 引用相等(相同内存地址) |
!== | 引用不相等 |
> | 大于 |
< | 小于 |
>= | 大于或等于 |
<= | 小于或等于 |
请注意,比较运算符可以通过调用 Comparable 类型的 compareTo 方法作用于任何实现了该接口的类型。
对 Java 开发者的提示: 在 Kotlin 中,你应该使用
==来代替 Java 中的equals,而使用===来代替 Java 中的==。
逻辑运算符
为了从基本条件(使用上述运算符)构建更复杂的条件,Kotlin 提供了标准的逻辑运算符:
| 运算符 | 含义 |
|---|---|
&& | 逻辑“与” |
| ` | |
! | 逻辑“非” |
利用这些运算符,你可以组合多个基本条件:
1if (planet == "Jupiter" || planet == "Saturn" || planet == "Uranus" || planet == "Neptune") { 2 println("你选择的行星有环,通常由岩石和冰块组成") 3}
测验
练习
完成以下代码片段,以检查以下内容:
age变量是否在 18 到 21 之间(包含边界)。username变量是否等于"admin"或"system"。number变量既不等于17也不等于42。
问题
1// 注意:在此代码区域中,你可以访问预定义的变量 age、username 和 number。 2 3// 检查年龄 4 5 6// 检查用户名 7 8 9// 检查数字
解答
1// 检查年龄 2if (age in 18..21) { 3 println("年龄在 18 到 21 之间") 4} else { 5 println("年龄不在 18 到 21 之间") 6} 7 8// 检查用户名 9if (username == "admin" || username == "system") { 10 println("用户拥有管理员权限") 11} else { 12 println("用户没有管理员权限") 13} 14 15// 检查数字 16if (number != 17 && number != 42) { 17 println("这个数字既不是 17 也不是 42") 18} else { 19 println("这个数字是 17 或 42") 20}
总结
- Kotlin 的
if条件与 Java 或 C 等其他语言的工作方式完全相同。 - 逻辑和比较运算符也常见于其他语言。
- 但与 Java 不同的是,Kotlin 提供了
==用于结构相等性检查,===用于引用相等性检查。
- 但与 Java 不同的是,Kotlin 提供了
在下一课中,你将学习使用 when 语句进行条件控制流,并了解何时应优先使用它而非 if。
Quiz
单选题
如何表达条件“文本为空或至少包含3个字符”?
1 / 1