目录
摘要
if,for,Range 操作(指定步长,逆序,递减)
流程控制
条件表达式
if/else
结构与 Java 类型,不过由于 Kotlin 面向表达式,所以可以直接将表达式赋给一个变量。
val s = if (x > 0) 1 else -1
这种方式可以给常量赋值,有点类似 Java 中的三元操作符,此时 s 的类型为 Int
- 如果是下面这种混合型的,s 的类型就为 Any
val s = if (x > 0) "a" else 65
- 因为 Kotlin 中表达式都必须有值,所以如果没有
else
的话,需要引入 Unit 类
val s3: Any = if (x > 0) 1 else Unit
- Kotlin 在 if 语句块的最后可以自动返回最后一行表达式的值,而不需要写
return
语句
val max = if (1 < 2) {
println("a")
2
} else {
println("b")
1
}
循环
while 和 do-while
Kotlin 中的 while
和 do-while
类似 Java
for
基本使用
val arr = intArrayOf(1, 2, 3)
for ( a in arr) {
println(a)
}
用于字符串上
for (s in "Hello")
print(s)
Range
概述
Range 使用特殊符号 ..
表示,可以结合 if 和 for 语句使用。
If
在指定范围内
val x = 3
val y = 10
if (x in 1..y - 1)
println("OK")
else
println("OUT")
在指定范围外
val arr = intArrayOf(1, 2, 3, 4, 5)
if ( x !in 0..arr.lastIndex)
println("OUT")
也可结合 String 来使用
val str = "abcdef"
if (str in "abc".."abe") {
println(str) // abcdef
}
For
for (x in 1..n)
println(x)
此表达式表示让变量 i
遍历 in
右边的表达式的所有值 ( “1” 到 “n” )
变量 i
不需要事先定义,循环变量的作用域会一直持续直到循环结束。
除了基本的关键字 in
之外,也可以使用 step
控制步长,使用 downTo
进行递减操作。
for (z in 4 downTo 1)
print(z) // 4321
for (z in 1..4 step 2)
print(z) // 13
for (z in 4 downTo 1 step 2)
print(z) // 42
for (z in (1..4).reversed())
print(z) // 4321
break 和 continue
Kotlin 提供 break
和 continue
来退出循环,用法与 Java 相似。