Kotlin入门:程序的逻辑控制——03

一、程序的逻辑控制

        程序的执行语句主要分为3种:顺序语句、条件语句和循环语句。

二、if条件语句

        if表达式在Kotlin中用于根据条件执行不同的代码块。它有两种形式:普通if带返回值的if。

 普通if语句:

        普通的if语句由关键字if、一个布尔表达式和一个代码块组成。如果布尔表达式为true,则执行代码块;否则,跳过代码块。

val x = 10
if (x > 5) {
    println("x大于5")
} else {
    println("x小于等于5")
}

带返回值的if表达式: 

        带返回值的if表达式可以用来简化代码。它由关键字if、一个布尔表达式、一个返回值(true分支)和一个返回值(false分支)组成。它会根据布尔表达式的结果返回相应的值。

val x = 10
val result = if (x > 5) "x大于5" else "x小于等于5"
println(result)

函数中带返回的if: 

fun largerNumber(num1: Int, num2: Int) = if (num1 > num2) num1 else num2

三、when表达式: 

         when表达式类似于switch语句,可以根据不同的条件执行不同的代码块。它有两种形式:普通when带返回值的when。语法为:匹配值 -> { 执行逻辑 }

 普通when语句:

         普通的when语句由关键字when、一个待匹配的值和多个分支组成。每个分支包含一个或多个值,当待匹配的值与分支中的值之一相等时,执行对应的代码块。

val x = 2
when (x) {
    1 -> println("x等于1")
    2 -> println("x等于2")
    else -> println("x不等于1和2")
}

带返回值的when表达式:

        带返回值的when表达式可以用来简化代码。它由关键字when、一个待匹配的值和多个分支组成。每个分支包含一个或多个值,并且可以有一个特殊的分支else,用于处理其他未匹配的情况。 

fun getScore(name: String) = when (name) {
 "Tom" -> 86
 "Jim" -> 77
 "Jack" -> 95
 "Lily" -> 100
 else -> 0
}

类型匹配:

fun checkNumber(num: Number) {
 when (num) {
 is Int -> println("number is Int")
 is Double -> println("number is Double")
 else -> println("number not support")
 }

        上述代码中,is关键字就是类型匹配的核心,它相当于Java中的instanceof关键字。

不在when语句中传入参数:

fun getScore(name: String) = when {
 name == "Tom" -> 86
 name == "Jim" -> 77
 name == "Jack" -> 95
 name == "Lily" -> 100
 else -> 0
}

         注意,Kotlin中判断字 符串或对象是否相等可以直接使用==关键字,而不用像Java那样调用equals()方法。

 其他用法:

        假设所有名字以Tom开头的人,他的分数都是86分,这种场景如果用带参数的when语句 来写就无法实现,而使用不带参数的when语句就可以这样写,现在不管你传入的名字是Tom还是Tomy,只要是以Tom开头的名字,他的分数就是86分。 

fun getScore(name: String) = when {
 name.startsWith("Tom") -> 86
 name == "Jim" -> 77
 name == "Jack" -> 95
 name == "Lily" -> 100
 else -> 0
}

四、 循环语句

        kotlin的循环语句有for循环、while循环和do-while循环。

for循环:

从集合或数组中迭代: 

        for循环用于对一个集合或者数组进行迭代,逐个处理其中的元素。它的基本语法如下:

val numbers = arrayOf(1, 2, 3, 4, 5)
for (number in numbers) {
    println(number)
}

        在上述例子中,我们遍历了一个整数数组,并将每个元素打印出来。 

Range来指定循环:

        val range = 0..10的范围就是[0, 10]。

fun main() {
 for (i in 0..10) {
 println(i)
 }
}

使用for-in循环遍历区间:

        val range = 0 until 10 ,它的数学表达方式是[0, 10)。口诀:左闭右开

fun main() {
 for (i in 0 until 10) {
 println(i)
 }
}

结合step函数来指定循环的步长:

fun main() {
 for (i in 0 until 10 step 2) {
 println(i)
 }
}

downTo 关键字:

fun main() {
 for (i in 10 downTo 1) {
 println(i)
 }
}

           这里我们创建了一个[10, 1]的降序区间。

while循环和do-while循环: 

        while循环和do-while循环用于根据条件重复执行一段代码块。

        while循环会先检查条件是否为true,如果是则执行代码块,然后再次检查条件。如果条件为false,则跳过代码块。

var i = 0
while (i < 5) {
    println(i)
    i++
}

        do-while循环首先执行一次代码块,然后再检查条件。只有在条件为true时才会继续执行。 

var i = 0
do {
    println(i)
    i++
} while (i < 5)

        上述两个例子中,我们通过循环输出了0到4的数字。 

 五、控制循环流程:

Kotlin提供了几个控制循环流程的关键字:

  • continue:用于跳过循环的当前迭代,直接进入下一次迭代。
  • break:用于完全退出循环,不再执行后续的迭代。
  • return:用于完全退出函数或者匿名函数,不再执行后续的代码。

        通过这些关键字可以在循环中灵活使用,根据需要来控制循环的行为。

猜你喜欢

转载自blog.csdn.net/A125679880/article/details/132268435