Kotlin学习(4)-基础之控制流

if 表达式

Kotlin中if是一个表达式,即它会返回一个值。java中我们可以使用三元表达式:

条件 ? result1 : result2
//传统用法
var max = a
if(a < b) max = b

//
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
}

如果你使用 if 作为表达式而不是语句(例如:返回它的值或者把它赋给变量),该表达式需要有 else 分支。

when表达式

  • 将它的参数与所有的分支条件顺序比较,直到某个分支满足条件
  • when 既可以被当做表达式使用也可以被当做语句使用
  • when 作为一个表达式使用,则必须有 else 分支
  • 可以用任意表达式(而不只是常量)作为分支条件
  • 如果很多分支需要用相同的方式处理,则可以把多个分支条件放在一起,用逗号分隔:
when (x) {
    1 -> print("x == 1")
    2 -> print("x == 2")
    else -> { // 注意这个块
        print("x is neither 1 nor 2")
    }
}

3. For循环

对对象进行遍历,Kotlin中使用关键字“in”代替了Java中的“:”符号。如下所示

for(item: Int in ints){
    
}

如果需要在数字区间上迭代,使用下面的方式:

for(i in 1..5){
    println(i)
}

for(i in 6 downTo 0 step 2){
    println(i)
}

想要通过索引遍历数组或集合:

for(i in array.indices){
    println(array[i])
}

//使用库函数
for((index,value) in array.withIndex()){
    println("the element at $index is $value")
}

While循环

Kotlin中while循环与java一样。

while(x > 0){
    x--
}


do{
    val y = retrieveData() 
}while(y != null)

break 和continue

  • break:终止最直接包围它的循环。
  • continue:继续下一次最直接包围它的循环

你可能感兴趣的:(Kotlin)