Kotlin学习(6):控制流
来源:互联网 发布:js面向对象 阮一峰 编辑:程序博客网 时间:2024/06/02 04:24
- 开发环境:IntelliJ IEDA
- 个人博客:http://blog.csdn.net/IInmy
- 项目源码:https://github.com/Rushro2m/LearnKotlin-master
1、If表达式
在Kotlin中,if
是一个表达式,即它会返回一个值。因此就不需要三元运算符(条件?然后:否则),因为普通的if
就能胜任这个角色。
- 传统用法
var max = aif (a > b) max = a
- 作为表达式
val max = if (a > b) a else b
- 分支为代码块
if
的分支可以是代码块,最后的表达式作为该块的值:
val max2 = if (a > b) { print("choose a") a} else { print("choose b") b}
注:如果使用if
作为表达式而不是语句,那么该表达式需要有else
分支。
2、When表达式
when
取代了类C语言的switch操作符。其最简单的形式如下:
when (x) { 1 -> println("x == 1") 2 -> println("x == 2") else -> { println("x is neither 1 nor 2") } }
when
将它的参数和所有的分支条件顺序比较,知道某个分支满足条件。when
既可以被当作表达式使用,也可以被当作语句使用。 如果它被当作表达式,符合条件的分支的值就是整个表达式的值,如果当作语句使用,则忽略个别分支的值。
如果其他分支都不满足条件将会求值else
分支。如果when
作为一个表达式使用,则必须有else
分支,除非编译器能够检测出所有的可能情况都已经覆盖了。
- 相同处理方式
如果很多分支需要用相同的方式处理,则可以把多个分支条件放在一起,用逗号分隔:
when (x) { 0, 1 -> print("x == 0 or x == 1") else -> print("otherwise")}
- 表达式作为分支
when (x) { parseInt(x) -> print("s encodes x") else -> print("s does not encode")}
- 检测一个值是否在某区间
我们可以检测一个值在(in
)或者不在(!in
)一个区间或集合中:
when (x) { in 1..10 -> print("x is in the range") !in 10..20 -> print("x is outside the range") else -> print("none of the above")}
- 检测是否为某种类型的值
检测一个值是(is
)或者不是(!is
)一个特定类型的值。
fun hasPrefix(x: Any) = when (x) { is String -> x.startsWith("prefix") else -> false}
3、For循环
for
循环可以对任何提供迭代器(iterator)的对象进行遍历,这相当于像C#这样的语言中的foreach
循环。语法如下:
- 传统用法
val items = listOf(1, 2, 3, 4) for (item in items) { println(item) }
- 基于索引
for (index in items.indices) { print(items[index]) }
withIndex
:
for ((index, value) in items.withIndex()) { println("the element at $index is $value")}
4、While循环
while
循环主要有while
和do..while
两种,和Java中使用方法相同。
while
fun put(x: Int): Int { var x1 = x while (x1 > 0) { x1-- } return x1}
do..while
fun con(x: Int):Int{ var x1 = x do { x1-- } while (x1 > 0) return x1}
阅读全文
0 0
- Kotlin学习(6):控制流
- Kotlin教程学习-控制流
- Kotlin 学习之控制流
- kotlin学习7(基础操作符、控制流、函数)
- Kotlin学习(六): 包、控制流、返回与跳转
- 学习Kotlin笔记记录。--------控制流
- Kotlin 官方学习教程之控制流
- Kotlin学习之-4.3.3 控制流
- Kotlin学习-条件控制(四)
- Kotlin学习-循环控制(五)
- Kotlin for Android(四)Kotlin控制流
- Kotlin语法(四)控制流
- Kotlin笔记(四)控制流
- Kotlin控制流
- Kotlin 控制流
- kotlin(2):控制流
- Kotlin学习笔记——控制流和跳转
- Kotlin 从学习到 Android 第四章 控制流
- CentOS7.4 Mysql5.6 详细安装教程
- scrollView ListView GridView 嵌套 你要知道的
- 神经网络之自编码与稀疏性
- 浅析并发
- npm install webpack失败
- Kotlin学习(6):控制流
- windows 10 内置bash 安装32位支持
- linux 任务管理-后台运行与终止
- Fedora删除已安装的软件
- UnityShader学习资料推荐
- 接口小结
- 马尔科夫链 吸收概率方程组推导
- 友元类,友元函数
- 苹果4亿美元收购Shazam,大白菜终于被猪拱了!