条件语句 (if, when)

概述

在编程中,条件语句用于根据不同的条件执行不同的代码块。Kotlin 提供了两种主要的条件语句:if 和 when。if 语句用于简单的条件判断,而 when 语句则适用于更复杂的条件分支。

1. if 语句

1.1 基本语法

if 语句的基本语法如下:

if (条件) {
    // 条件为真时执行的代码
} else {
    // 条件为假时执行的代码
}

1.2 示例

fun main() {
    val number = 10

    if (number > 5) {
        println("Number is greater than 5")
    } else {
        println("Number is not greater than 5")
    }
}

1.3 多重条件

你还可以使用 else if 来处理多个条件:

fun main() {
    val number = 3

    if (number > 5) {
        println("Number is greater than 5")
    } else if (number == 5) {
        println("Number is equal to 5")
    } else {
        println("Number is less than 5")
    }
}

1.4 if 表达式

在 Kotlin 中,if 语句可以作为表达式使用,这意味着它可以返回一个值。

fun main() {
    val number = 10
    val result = if (number > 5) "Greater than 5" else "Not greater than 5"
    println(result)
}

2. when 语句

2.1 基本语法

when 语句类似于其他语言中的 switch 语句,但它更加强大和灵活。

when (变量) {
    值1 -> {
        // 当变量等于值1时执行的代码
    }
    值2 -> {
        // 当变量等于值2时执行的代码
    }
    else -> {
        // 当变量不等于任何值时执行的代码
    }
}

2.2 示例

fun main() {
    val day = "Monday"

    when (day) {
        "Monday" -> println("It's Monday")
        "Tuesday" -> println("It's Tuesday")
        "Wednesday" -> println("It's Wednesday")
        else -> println("It's another day")
    }
}

2.3 多重条件

你可以在 when 语句中使用多个条件:

fun main() {
    val number = 3

    when (number) {
        1, 2 -> println("Number is 1 or 2")
        3, 4 -> println("Number is 3 or 4")
        else -> println("Number is neither 1, 2, 3, nor 4")
    }
}

2.4 范围条件

你还可以使用范围条件:

fun main() {
    val number = 7

    when (number) {
        in 1..5 -> println("Number is between 1 and 5")
        in 6..10 -> println("Number is between 6 and 10")
        else -> println("Number is out of range")
    }
}

2.5 when 表达式

与 if 类似,when 也可以作为表达式使用:

fun main() {
    val number = 7
    val result = when (number) {
        in 1..5 -> "Between 1 and 5"
        in 6..10 -> "Between 6 and 10"
        else -> "Out of range"
    }
    println(result)
}

3. 实践练习

3.1 练习 1: 温度转换

编写一个程序,根据用户输入的温度值和单位(摄氏度或华氏度),将其转换为另一种单位并输出结果。

fun main() {
    print("Enter temperature: ")
    val temperature = readLine()!!.toDouble()
    print("Enter unit (C for Celsius, F for Fahrenheit): ")
    val unit = readLine()!!

    val result = when (unit) {
        "C" -> "Fahrenheit: ${temperature * 9 / 5 + 32}"
        "F" -> "Celsius: ${(temperature - 32) * 5 / 9}"
        else -> "Invalid unit"
    }

    println(result)
}

3.2 练习 2: 分数等级

编写一个程序,根据用户输入的分数,输出对应的等级(A, B, C, D, F)。

fun main() {
    print("Enter your score: ")
    val score = readLine()!!.toInt()

    val grade = when (score) {
        in 90..100 -> "A"
        in 80..89 -> "B"
        in 70..79 -> "C"
        in 60..69 -> "D"
        else -> "F"
    }

    println("Your grade is $grade")
}

4. 总结

条件语句是编程中非常重要的工具,它们允许你根据不同的条件执行不同的代码块。if 语句适用于简单的条件判断,而 when 语句则适用于更复杂的条件分支。通过练习,你可以更好地掌握这些语句的使用。

希望这篇教程能帮助你理解 Kotlin 中的条件语句。继续练习和探索,你将能够更熟练地使用这些工具来编写更复杂的程序。