前言:
现时各位老铁们对“java分支语句有哪些”大体比较关切,大家都想要了解一些“java分支语句有哪些”的相关内容。那么小编同时在网摘上汇集了一些关于“java分支语句有哪些””的相关知识,希望你们能喜欢,姐妹们快快来学习一下吧!分支语句
Kotlin 中的分支语句有两种,分别是 if...else 和 when。
if 表达式
Kotlin 可以像 Java 那样,使用 if...else 语句,通过判断条件来修改变量的值:
var name = ""if (local == "en") { name = "lqr"} else { name = "吴彦祖"}
但这种写法还不够简洁,Kotlin 对 if...else 进行发加强,支持 if表达式 ,可以对上述代码进行简化:
val name = if (local == "en") "lqr" else "吴彦祖"
Kotlin 中没有三元运算符,不过可以使用 if 表达式来处理。
when 表达式
Kotlin 中的 when 相当于 Java 中的 switch,when 语句用于处理多分支条件判断,代码更清晰:
val x = 5when (x) { 5 -> println("x is 5") is Int -> println("Hello $x") in 1..100 -> println("$x is in 1..100") !in 1..100 -> println("$x is not in 1..100") args[0].toInt() -> println("x == args[0]")}
可以看到 when 的条件分支很强大,除了支持值判断,甚至还支持表达式判断。与 if表达式 一样,Kotlin 也支持 when表达式:
val hero = when (local) { "en" -> "Hero" "zh" -> "英雄" "fr" -> "Un héros" "de" -> "Held" else -> "未知"}println(hero)
与 Java 的 switch 相比,Kotlin 的 when 更加强大:
加强版 switch,支持任意类型支持纯表达式条件分支(类似 if)when表达式 要求完备性,需要将所有情况都列出来循环语句
Kotlin 中的循环语句大体有两种:for循环 和 while循环。
for 循环
基本写法:for(element in elements)...
for (arg in args) { println(arg)}
for 循环背后的运行机制是先通过 args.iterator() 获取到迭代器 Iterator,再结合迭代器的 next() 和 hasNext() 来处理数组中的元素,所以循环的关键点是 Iterator。
Java 中 for 循环的原理也是迭代器,但不同的是,Java 的数组需要实现 Iterable<T> 接口,并实现iterator(),而 Kotlin 中则是任意类重写 operator fun iterator() 。
数组 Array 支持在 for 循环的同时获取索引值:
// 带索引的for循环for ((index, value) in args.withIndex()) { println("$index : $value")}// 上面写法等价于下面写法for (indexValue in args.withIndex()) { println("${indexValue.index} : ${indexValue.value}")}
数组 Array 的 withIndex() 方法返回的是 Iterable<IndexedValue<T>>,其中 IndexedValue 是 data class ,支持使用 () 提取属性:
public data class IndexedValue<out T>(public val index: Int, public val value: T)
while 循环
除了 for 循环,Kotlin 还支持 while 循环,while 循环格式分两种,两者区别如下:
while:先判断再执行do-while:先执行再判断
var x = 5while (x > 0) { print("$x ") // 5 4 3 2 1 x--}var x = 5do { print("$x ") // 5 4 3 2 1 x--} while (x > 0)
跳过和终止循环
Kotlin 也支持跳过和终止循环语句的指令,分别是:
continue :跳过当前循环break :终止当前循环
val args = intArrayOf(1, 2, 3, 4, 5)for (arg in args) { if (arg == 2) continue if (arg == 4) break print("$arg ") // 1 3}
开发中也常用 return 来终止循环,但它与 break 不同的是,return 实际上是中止方法的执行。
当有多层循环嵌套需要根据条件 跳过或终止内外套循环语句时,可以使用标签:
val args = intArrayOf(1, 2, 3, 4, 5)Outter@ for (arg in args) { println("outter: $arg") var i = arg print("inner: ") Inner@ while (i > 0) { if (arg == 2) break@Inner // 当外循环元素为2时,跳过while,进行下次for if (arg == 4) break@Outter // 当外循环元素为3时,直接跳出for print("$i ") i-- } println()}
标签: #java分支语句有哪些