Kotlin基础语法--控制流

If表达式

Kotlin中的 if 不同Java,它不仅仅只能作为一个判断语句,还能作为表达式,即它能返回一个值.

// 传统用法
var max = a 
if (a < b) max = b

// With else 
var max: Int
if (a > b) {
    max = a
} else {
    max = b
}

在Kotlin中,没有三元运算符,但是可以使用 if 表达式完成三元运算符功能

//Java中三元运算符
int max = a > b ? a : b ;
//Kotlin实现类似三元运算符功能
var max = if (a > b) a else b

注: Kotlin中 if 作为表达式,后面可接代码块,最后的表达式作为该块的返回值:

val max = if (a > b) {
    print("Choose a")
    a
} else {
    print("Choose b")
    b
}

注: 如果把 if 作为表达式使用,那么必须有 else 分支,这样才能确保 if 一定能返回一个值.

When 表达式

Kotlin中的 whenif 一样,既可以作为语句,也可以作为表达式.作为语句时,其相当于Java中的 switch ,作为表达式时,它的任何一个分支的代码块的最后一句表达式作为该分支的返回值,同时, when 作为表达式使用必须有 else 分支存在.

//作为语句
fun printAge(age: Int, adult: Array<Int>) {
    when (age) {
        1 -> println("age 1")
        2, 3, 4, 5 -> println("small children")
        in 15..20 -> println("teenagers")
        in adult -> println("adults")
        !in 50..100 -> println("not elders")
    }
}

//作为表达式
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")
}

For 循环

for 循环可以对任何提供迭代器(iterator)的对象进行遍历,语法如下:

for (item in collection) {
//do your thing
}

for (index in arrays.indices)
   println(arrays[index])

for ((index,value) in arrays.withIndex()){
  println("arrays[$index]=$value")
}

While 循环

whiledo..while 与Java用法一致.

循环中的break和continue

Kotlin中的 breakcontinue 基础用法与Java类似,其余完整用法请参见返回和跳转

本文内容摘自:控制流

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,794评论 9 118
  • Kotlin系统化学习-20170823文章中有大部分内容是借鉴《Kotlin实战》中文版,特此注明一下。 Kot...
    ChenHaHa哈哈阅读 1,894评论 2 10
  • Kotlin 君和 Swift 君在一个团队一起开发已经很久了,由于平台的差异性,他们经常会进行一些技术上的交流(...
    wishing111阅读 1,113评论 0 2
  • 这章将讲述声明函数、变量、类、枚举和属性Kotlin的控制结构智能强转抛和处理异常 1 基本元素: 函数和变量 K...
    tigershin阅读 1,472评论 1 1
  • 今天,处室其他人都出门了,就留我一个人看门。立马我就有改属相的嫌疑,从兔变狗了。 一个人的办公室,阴沉沉的天气,一...
    真冉阅读 484评论 8 1

友情链接更多精彩内容