简介
kotlin
和Java
一样,都有自己的流程控制语句,比如分支语句、循环语句和跳转语句等,而且两者区别不是很大,kotlin
相对java
的流程控制语句,使用更灵活,功能更强大
if
if-else
语句,代表如果满足条件就执行if的内容-否则就执行else内容
,是最基本的条件控制(else可省略)
Java
Java中if-else
语句只能作为普通语句使用,也必须在方法里使用
public String ifTest(int position) {if (position == 0) {return "ok";} else {return "no";}}
Kotlin
Kotlin中if-else
语句基本用法和java
一样,可作为普通语句使用
Kotlin中if-else
语句,还可以做为表达式,也不用写在函数式里面
//作为传统语句使用基本用法fun ifTest(position: Int): String {if (position == 0) {return "ok"} else {return "no"}}
//简写用法fun ifTest(position: Int): String {return if (position == 0) {"ok"} else {"no"}}
//作为表达式使用var position = 10var name = if (position == 0) "ok" else "no"
可以很方便的封装三目运算符
//三目运算函数selectfun <T> select(isTrue: Boolean,params1: () -> T,params2: () -> T) = if (isTrue) params1() else params2()
//使用var name =select(position==0, {"ok" }, {"no"})
when
Kotlin中when
语句相当于Java的switch
,只不过相对更加的强大,灵活性更好。
Java
Java的switch
只能作为传统语句使用,对所有的分支进行检查到有一个满足条件就可控制跳出
private String ifTest(int position) {String name ;switch (position) {case 0:name = "ok";break;case 1:name = "yes";break;default:name = "no";}return name;}
kotlin
kotlin的when
可以做传统语句使用
kotlin的when
可以做表达式使用
kotlin的when
中不需要switch
中的case-break
·语句直接用->
表示一条分支
kotlin的when
中每个分支中->
后的执行语句大于一条,需要用{}
包裹
kotlin的when
中多个分支中执行相同语句,用,
隔开
//传统用法fun ifTest(position: Int): String {when (position) {0 -> return "ok"1,2 -> return "yes"else -> return "no"}}
//表达式简化用法private fun ifTest(position: Int): String {return when (position) {0 -> "ok"1, 2 -> "yes"else -> "no"}}
// 表达式可以不用写在函数内部var name=when (position) {0 -> "ok"1, 2 -> "yes"else -> "no"}
for
Java
Java中循环有普通循环和增强循环
//普通循环int name;for(int i=0;i<100;I++){if(i==0){name="ok";}else {name ="no";}}
//增强循环List<String> list =new ArrayList<>();list.add("ok");list.add("yes");list.add("no");for(String name:list){Log.d("list",name)}
Kotlin
Kotlin中循环通过任何提供的迭代器进行迭代或者使用高级函数
Kotlin中for循环不能作为表达式
//迭代器循环var list =arrayOf("ok", "yes", "no") for (item in list){print(item)}
//迭代角标循环,indices为下标var list =arrayOf("ok", "yes", "no") for (i in list.indices){print(array[i])}
//forEach函数,it即为itemvar list =arrayOf("ok", "yes", "no") list.forEach{print(it)}
while ,do ..while
while循环开始时,先判断()
值,如果满足条件,进入循环体,再判断…,直到不满足条件,将跳出循环。
do..while循环开始时,先进入循环提一次,再判断()
值,如果满足条件,进入循环,再判断…,直到不满足条件,将跳出循环。
Java中的
while
,do while
和 Kotlin 中差不多Kotlin中
while
,do while
循环不能作为表达式
//kotlin中whilevar i =0while (i<=10){println(i)i++}
//kotlin中do whilevar i=10//do...while循环输出到0do {println(i)i - -}while (i>0)