控制语句
原创大约 2 分钟
分支条件
fun main() {
// 传统写法
val name1 = "Kotlin"
if (name1 == "Kotlin") {
println("Hello")
} else {
println("Hi")
}
// 函数式写法
val name2 = "Kotlin"
name2.let {
if (it == "Kotlin") {
println("Hello")
} else {
println("Hi")
}
}
// kotlin没有三元运算符,这相当于三元运算
var num = if ( 4 > 2 ) 3 else 5
println(num)
// 将if作为块结构
val name3 = "Kotlin"
val result = if (name3 == "Kotlin") {
println("Hello")
// "Kotlin"作为返回值会赋值给result
"Kotlin"
} else {
println("Hi")
"Hi"
}
println(result)
// when
val name4 = "Kotlin"
when (name4) {
"Kotlin" -> println("Hello Kotlin")
"Java" -> println("Hi Java")
else -> println("Hi")
}
// 在1到100之间
when (20) {
in 1..100 -> {
println("在1到100之间");
}
in 101..200 -> {
println("在101到200之间");
}
else -> {
println("不在1到200之间");
}
}
// 20不在101到200之间
when (20) {
!in 1..100 -> {
println("20不在1到100之间");
}
!in 101..200 -> {
println("20不在101到200之间");
}
else -> {
println("20在1到200之间");
}
}
}
循环控制
fun main() {
// in
for (i in 1..6) {
if (i == 1) {
continue;
}
if (i == 5) {
break;
}
print("$i, ")
}
println()
// in..step
for (i in 1..20 step 4) {
print("$i, ")
}
println()
// in..downTo
for (i in 10 downTo 7) {
print("$i, ")
}
println()
// in..until
for (i in 1 until 5) {
print("$i, ")
}
println()
// 遍历集合
val list = listOf(1, 2, 3)
for (i in list) {
print("$i, ")
}
println()
// 使用索引遍历数组
val array = arrayOf("a", "b", "c")
for (i in array.indices) {
println("$i -> ${array[i]}, ")
}
// 遍历元素(带索引)
for ((index, element) in array.withIndex()) {
println("$index -> $element, ")
}
// forEach遍历元素
array.forEach {
println(it)
}
// forEach增强版
array.forEachIndexed {
index, element -> println("$index -> $element")
}
// 直接在for循环中使用数组
for(item in array) {
print("$item, ")
}
println()
// while循环
var i = 0
while (i < 5) {
print("$i, ")
i++
}
println()
// do-while循环
var j = 0
do {
print("$j, ")
j++
} while (j < 5)
println()
// repeat循环
repeat(5) {
println("repeat循环, 当前次数为:${it}");
}
}
异常处理
fun main() {
// 简单异常处理
try {
throw Exception("发生了异常1")
} catch (e: Exception) {
println(e.message)
} finally {
println("最终代码块1")
}
// try表达式
val result = try {
// 可能会抛出异常的代码
throw Exception("发生了异常2")
} catch (e: Throwable) {
// 处理异常并返回一个值
e.message ?: "未知异常2"
} finally {
// 清理代码
println("最终代码块2")
}
println(result)
}
感谢支持
更多内容,请移步《超级个体》。