Kotlin条件控制语法详解与实际用法
时间:2026-08-14 | 作者:冻月看渠 | 阅读:0IF 表达式
if 语句包含一个布尔表达式,以及一条或多条语句。
if 可以使用传统写法,也可以配合 else 使用。
同时,if 还可以作为表达式直接返回结果。
// 传统用法
var max = a
if (a < b) max = b
// 使用 else
var max: Int
if (a > b) {
max = a
} else {
max = b
}
// 作为表达式
val max = if (a > b) a else b
我们也可以把 IF 表达式的结果赋值给一个变量。
val max = if (a > b) {
print("Choose a")
a
} else {
print("Choose b")
b
}
这也说明不需要像Java那种有一个三元操作符。
因为我们可以使用它来简单实现:
val c = if (condition) a else b
实例
fun main(args: Array) {
var x = 0
if(x>0){
println("x 大于 0")
}else if(x==0){
println("x 等于 0")
}else{
println("x 小于 0")
}
var a = 1
var b = 2
val c = if (a>=b) a else b
println("c 的值为 $c")
}
输出结果为:
x 等于 0
c 的值为 2
使用区间
使用 in 运算符,可以检测某个数字是否在指定区间内。
区间格式为 x..y:
实例
fun main(args: Array) {
val x = 5
val y = 9
if (x in 1..8) {
println("x 在区间内")
}
}
输出结果为:
x 在区间内
When 表达式
when 会将它的参数与各个分支条件按顺序比较,直到某个分支满足条件。
when 既能当作表达式使用,也能当作语句使用。
如果放在表达式中,满足条件的分支值就是整个表达式的值。
如果当作语句执行,则会忽略各个分支本身的值。
when 类似其他语言的 switch 操作符。
其最简单的形式如下:
when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
else -> { // 注意这个块
print("x 不是 1 ,也不是 2")
}
}
在 when 中,else 同 switch 的 default。
如果其他分支都不满足条件,将会求值 else 分支。
如果很多分支需要用相同的方式处理,可以把多个分支条件放在一起,并用逗号分隔:
when (x) {
0, 1 -> print("x == 0 or x == 1")
else -> print("otherwise")
}
我们也可以检测一个值在(in)或者不在(!in)一个区间或者集合中:
when (x) {
in 1..10 -> print("x is in the range")
in validNumbers -> print("x is valid")
!in 10..20 -> print("x is outside the range")
else -> print("none of the above")
}
另一种常见用法,是判断某个值是不是(is)或者不是(!is)某种特定类型。
要注意的是,由于智能转换的存在,一旦类型判断成立,就可以直接访问该类型的方法和属性,不需要再做任何额外检测。
fun hasPrefix(x: Any) = when(x) {
is String -> x.startsWith("prefix")
else -> false
}
when 也可以用来取代 if-else if链。
如果不提供参数,所有分支条件都是简单的布尔表达式。
当某个分支条件为真时,就执行该分支:
when {
x.isOdd() -> print("x is odd")
x.isEven() -> print("x is even")
else -> print("x is funny")
}
实例
fun main(args: Array) {
var x = 0
when (x) {
0, 1 -> println("x == 0 or x == 1")
else -> println("otherwise")
}
when (x) {
1 -> println("x == 1")
2 -> println("x == 2")
else -> { // 注意这个块
println("x 不是 1 ,也不是 2")
}
}
when (x) {
in 0..10 -> println("x 在该区间范围内")
else -> println("x 不在该区间范围内")
}
}
输出结果:
x == 0 or x == 1
x 不是 1 ,也不是 2
x 在该区间范围内
when 中使用 in 运算符来判断集合内是否包含某实例:
fun main(args: Array) {
val items = setOf("apple", "banana", "kiwi")
when {
"orange" in items -> println("juicy")
"apple" in items -> println("apple is fine too")
}
}
输出结果:
apple is fine too
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
-
- Kotlin Android开发实操经验总结与实用技巧分享
- 时间:2026-08-18
-
- Kotlin Android开发常见问题及解决方法
- 时间:2026-08-17
-
- Kotlin Android开发相关工具如何挑选更合适
- 时间:2026-08-17
-
- Kotlin Android基础知识入门整理新手必看指南
- 时间:2026-08-17
-
- Kotlin中直接调用函数与invoke()用法区别及适用场景
- 时间:2026-08-17
-
- Kotlin中直接调用函数与显式invoke的区别及适用场景
- 时间:2026-08-17
-
- Kotlin正则表达式常见用法与代码示例
- 时间:2026-08-17
精选合集
更多大家都在玩
大家都在看
更多-
- 糖尿病完全不能吃糖吗
- 时间:2026-09-15
-
- 蚂蚁庄园小课堂2026年9月16日最新题目答案
- 时间:2026-09-15
-
- 小鸡答题今天的答案是什么2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园每日答题答案2026年9月16日
- 时间:2026-09-15
-
- 以下哪种粮食是酿造绍兴黄酒的主要原料 蚂蚁庄园今日答案9月16日
- 时间:2026-09-15
-
- 劝学名句“及时当勉励,岁月不待人”出自哪位诗人 蚂蚁庄园今日答案9.16
- 时间:2026-09-15
-
- 蚂蚁庄园今天答题答案2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园答题今日答案2026年9月16日
- 时间:2026-09-15
