原文: https://beginnersbook.com/2018/09/kotlin-if-else-expression/

在任何编程语言中,我们需要控制语句来根据条件的输出来控制程序的流程。例如,如果数字是偶数则显示“偶数”但如果数字是奇数则显示“奇数”。为了在编程中实现这一点,我们需要使用控制语句来检查条件是否满足,如果是,则执行此操作,如果没有则跳过此步骤。在 kotlin 中,我们使用表达式来控制程序中的流。在本教程中,我们将学习 Kotlin 中使用的几种表达式

  1. if表达式
  2. if..else表达式
  3. if..else if..else表达式
  4. 嵌套表达式

1. Kotlin - if表达

if表达很容易理解。让我们来看看if表达式的语法:

  1. if(condition){
  2. // Statements that need to be executed if condition is true
  3. ...
  4. }

这里我们在if表达式中有一个条件,如果条件返回true则执行if表达式体内的语句,如果条件返回false则完全忽略它们。让我们举个例子来理解这个:

if表达式的例子

在这个例子中,如果给定的数字是偶数,那么我们在输出中显示“偶数”,否则我们跳过if里面的语句。

  1. fun main(args: Array<String>) {
  2. val number = 100
  3. // if expression
  4. if (number%2 == 0)
  5. println("Even Number")
  6. println("Out Of If statement")
  7. }

输出:

  1. Even Number
  2. Out Of If statement

让我们改变变量num的值。

  1. fun main(args: Array<String>) {
  2. val number = 101
  3. if (number%2 == 0)
  4. println("Even Number")
  5. println("Out Of If statement")
  6. }

输出:

  1. Out Of If statement

2. Kotlin - If..Else表达式

如果条件为true时,我们需要执行某些操作,并且条件为false时我们需要执行不同的操作,使用if else表达式。例如:如果我通过考试,我父亲会给我钱,否则他们会生气。如果我必须在编程中写这个,那么我会这样做:

  1. fun main(args: Array<String>) {
  2. // Marks out of 100
  3. val marks = 90
  4. if (marks < 30) {
  5. println("Father will get angry")
  6. }
  7. else {
  8. println("Father will give me money")
  9. }
  10. }

输出:

  1. Father will give me money

由于条件返回false,因此跳过if中的语句并执行else中的语句。

if..else表达式的语法:

  1. if(condition){
  2. // Statements that will be executed if the condition returns true
  3. ...
  4. }
  5. else{
  6. // Statements that will be executed if the condition returns false
  7. ...
  8. }

if..else表达式示例

在这个例子中,我们正在检查一个数字,看它是正面的还是负面的。

  1. fun main(args: Array<String>) {
  2. // Traditional usage
  3. val num = -101
  4. if (num < 0) {
  5. println("Negative number")
  6. }
  7. else {
  8. println("Positive number")
  9. }
  10. println("Out of if else statement")
  11. }

输出:

  1. Negative number
  2. Out of if else statement

3. Kotlin - if..else if..else阶梯表达式

在这个表达式中,我们有一个if块,一个else块和一个或多个else if块。这用于检查多个条件。

if..else if..else表达式示例

在这个例子中,我们有一个数字,我们正在检查它是负数,单位数,两位数还是多位数。我们使用if..else if..else表达式检查这些多个条件。当条件都不返回true时,else块内的语句将被执行。

  1. fun main(args: Array<String>) {
  2. val num = 99
  3. if(num<0)
  4. println("Number is Negative")
  5. else if (num>0 && num<10)
  6. println("Single digit number")
  7. else if (num>=10 && num <100)
  8. println("Double digit number")
  9. else
  10. println("Number has 3 or more digits")
  11. }

输出:

  1. Double digit number

4. Kotlin - 嵌套表达式

当一个表达式存在于另一个表达式主体内时,它被称为表达式的嵌套。例如,如果if表达式出现在另一个if中,那么它将被称为嵌套if表达式。

例如:

  1. fun main(args: Array<String>) {
  2. val num = 101
  3. if(num<0)
  4. println("Negative Number")
  5. else {
  6. //Nested expression
  7. if(num%2 == 0)
  8. println("Even Number")
  9. else
  10. println("Odd Number")
  11. }
  12. }

输出:

  1. Odd Number

参考

Kotlin 官方文档