Kotlin流程控制

2

Kotlin流程控制

  在前面已经介绍了Kotlin的运算符,这里主要介绍Kotlin的流程控制,包括if条件语句,when条件语句,while循环,do…while循环,for循环,以及continue和break跳转语句,尤其要注意when语句和switch语句的区别。

Kotlin条件语句

if条件语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 和Java语言具有相同的结构。if (布尔表达式) { 表达式为真时要执行的代码 }
// 区间表达,a..b step c代表区间[a, b],并且步长为c,其中c默认为1,等价于Python中的range(a, b + 1, c),但是要注意c必须为正数。如果要表达开区间[a, b),则使用a until b。如果要表达从大到小,则使用b downTo a表示[b, a],此时和Python不同的是,从大到小的步长也必须是正数,在Python中为负数。
fun main() {
val stu = 85
if (stu < 60) {
println("fail")
} else if (stu in 60..79) {
println("so so")
} else if (stu in 80..89) {
println("good")
} else {
println("excellent")
}
}

1

when语句

1
2
3
4
5
6
7
8
9
10
// when语句是Kotlin的特点,类似于其他语言的switch...case...,区别是没有穿透效应,使用箭头指向将执行的代码,最重要的是可以使用范围进行调节判断,非常灵活。
fun main() {
val stu = 6
when (stu) {
in 0..4, 5 -> println("fail")
6, 7 -> println("so so")
8 -> println("good")
9, 10 -> println("excellent")
}
}

2

while循环

1
2
3
4
5
6
7
8
9
// while 语句和C++、Java中完全相同,先进行判断然后再执行循环体内的代码
fun main() {
var sum = 0;
var i = 0;
while (i <= 100) {
sum += i++;
}
println("0 + 1 + .. + 100 = $sum")
}

4

do…while循环

1
2
3
4
5
6
7
8
9
// do...while 语句和C++、Java中几乎相同,先执行循环体内的代码然后再进行判断,唯一的区别是while后面省略分号
fun main() {
var sum = 0;
var i = 0;
do {
sum += i++;
} while (i <= 100)
println("0 + 1 + .. + 100 = $sum")
}

5

for循环

1
2
3
4
5
6
7
8
// for循环类似于Java和Python语言的结合体,不需要定义循环遍历的类型,可以使用in从可迭代对象中直接取出,这非常像Python语言。但是使用小括号和花括号,这又很像Java语言。
fun main() {
var sum = 0;
for (j in 0..100) {
sum += j
}
println("0 + 1 + .. + 100 = $sum")
}

6

break关键字

1
2
3
4
5
6
7
8
9
10
11
// break关键字和其他语言一样,跳出循环,执行循环后面的语句
fun main() {
var sum = 0
for (j in 0..100) {
if (j == 50) {
break
}
sum += j
}
println("0 + 1 + .. + 49 = $sum")
}

4

continue关键字

1
2
3
4
5
6
7
8
9
10
11
// continue关键字和其他语言一样,跳出本次循环,进行下一次循环
fun main() {
var sum = 0
for (j in 0..100) {
if (j == 50) {
continue
}
sum += j
}
println("0 + 1 + .. + 49 + 51 + .. + 100 = $sum")
}

5

Kotlin小结

  流程控制每种语言都大同小异,因为流程控制是所有语言的基础,只有掌握不同的流程控制语句,才能达到我们想要的目的,虽然难度较小,但是非常重要,无论以后从事什么样的研究,流程控制都是必不可少的,因此需要熟练掌握。

-------------本文结束感谢您的阅读-------------
0%