kotlin
和Java
一样,都有自己的流程控制语句,比如分支语句、循环语句和跳转语句等,而且两者区别不是很大,kotlin
相对java
的流程控制语句,使用更灵活,功能更强大
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 = 10
var name = if (position == 0) "ok" else "no"
可以很方便的封装三目运算符
//三目运算函数select
fun select(isTrue: Boolean,
params1: () -> T,
params2: () -> T) = if (isTrue) params1() else params2()
//使用
var name =select(position==0, {"ok" }, {"no"})
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"
}
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即为item
var list =arrayOf("ok", "yes", "no")
list.forEach{
print(it)
}
while循环开始时,先判断()
值,如果满足条件,进入循环体,再判断…,直到不满足条件,将跳出循环。
do..while循环开始时,先进入循环提一次,再判断()
值,如果满足条件,进入循环,再判断…,直到不满足条件,将跳出循环。
Java中的
while
,do while
和 Kotlin 中差不多
Kotlin中while
,do while
循环不能作为表达式
//kotlin中while
var i =0
while (i<=10){
println(i)
i++
}
//kotlin中do while
var i=10
//do...while循环输出到0
do {
println(i)
i - -
}while (i>0)