📜  Kotlin if-else 表达式

📅  最后修改于: 2022-05-13 01:55:35.720000             🧑  作者: Mango

Kotlin if-else 表达式

编程中的决策类似于现实生活中的决策。同样在编程中,当满足某些条件时,需要执行某个代码块。编程语言使用控制语句来控制基于某些条件的程序执行流程。如果条件为真,则进入条件块并执行指令。
Kotlin 中有不同类型的 if-else 表达式:

  • 如果表达式
  • if-else 表达式
  • if-else-if 梯形表达式
  • 嵌套 if 表达式

if 语句:
它用于指定要执行或不执行的语句块,即如果某个条件为真,则要执行的语句或语句块将无法执行。
句法:

if(condition) {

       // code to run if condition is true
}

流程图:

例子:

Java
fun main(args: Array) {
    var a = 3
    if(a > 0){
        print("Yes,number is positive")
    }
}


Java
fun main(args: Array) {
        var a = 5
        var b = 10
        if(a > b){
            print("Number 5 is larger than 10")
        }
        else{
            println("Number 10 is larger than 5")
        }
    }


Java
fun main(args: Array) {
    var a = 50
    var b = 40
 
    // here if-else returns a value which
    // is to be stored in max variable
    var max = if(a > b){                 
        print("Greater number is: ")
        a
    }
    else{
        print("Greater number is:")
        b
    }
    print(max)
}


Java
import java.util.Scanner
 
fun main(args: Array) {
    
    // create an object for scanner class
    val reader = Scanner(System.`in`)      
    print("Enter any number: ")
 
    // read the next Integer value
    var num = reader.nextInt()            
    var result  = if ( num > 0){
        "$num is positive number"
    }
    else if( num < 0){
        "$num is negative number"
    }
    else{
        "$num is equal to zero"
    }
    println(result)
 
}


Java
import java.util.Scanner
 
fun main(args: Array) {
  
    // create an object for scanner class
    val reader = Scanner(System.`in`)      
    print("Enter three numbers: ")
 
    var num1 = reader.nextInt()
    var num2 = reader.nextInt()
    var num3 = reader.nextInt()
 
    var max  = if ( num1 > num2) {
        if (num1 > num3) {
            "$num1 is the largest number"
        }
        else {
            "$num3 is the largest number"
        }
    }
    else if( num2 > num3){
        "$num2 is the largest number"
    }
    else{
        "$num3 is the largest number"
    }
    println(max)
 
}


输出:

Yes, number is positive


if-else 语句:
if-else 语句包含两个语句块。 “if”语句用于在条件为真时执行代码块,“else”语句用于在条件为假时执行代码块。
句法:

if(condition) { 
        // code to run if condition is true
}
else { 
       // code to run if condition is false
}

流程图:

这是 Kotlin 程序,用于查找两个数字中的较大值。

Java

fun main(args: Array) {
        var a = 5
        var b = 10
        if(a > b){
            print("Number 5 is larger than 10")
        }
        else{
            println("Number 10 is larger than 5")
        }
    }

输出:

Number 10 is larger than 5


Kotlin if-else 表达式作为三元运算符–
在 Kotlin 中,if-else 可以用作表达式,因为它返回一个值。与Java不同,Kotlin 中没有三元运算符,因为 if-else 根据条件返回值,并且工作方式与三元完全相同。
下面是 Kotlin 程序,用于使用 if-else 表达式查找两个数字之间的较大值。

Java

fun main(args: Array) {
    var a = 50
    var b = 40
 
    // here if-else returns a value which
    // is to be stored in max variable
    var max = if(a > b){                 
        print("Greater number is: ")
        a
    }
    else{
        print("Greater number is:")
        b
    }
    print(max)
}

输出:

Greater number is: 50


if-else-if 梯形表达式:
在这里,用户可以设置多个条件。所有的“if”语句都是从上到下执行的。一个接一个地检查所有条件,如果发现任何条件为真,则与 if 语句关联的代码将被执行,所有其他语句将被绕过到块的末尾。如果没有一个条件为真,那么默认情况下最后的 else 语句将被执行。
句法:

if(Firstcondition) { 
    // code to run if condition is true
}
else if(Secondcondition) {
    // code to run if condition is true
}
else{
}

流程图:

下面是 Kotlin 程序判断数字是正数、负数还是等于零。

Java

import java.util.Scanner
 
fun main(args: Array) {
    
    // create an object for scanner class
    val reader = Scanner(System.`in`)      
    print("Enter any number: ")
 
    // read the next Integer value
    var num = reader.nextInt()            
    var result  = if ( num > 0){
        "$num is positive number"
    }
    else if( num < 0){
        "$num is negative number"
    }
    else{
        "$num is equal to zero"
    }
    println(result)
 
}

输出:

Enter any number: 12
12 is positive number

Enter any number: -11
-11 is negative number

Enter any number: 0
0 is zero


嵌套 if 表达式:
嵌套的 if 语句是指另一个 if 语句中的 if 语句。如果第一个条件为真,则编码要执行的关联块,并再次检查嵌套在第一个块中的 if 条件,如果它也为真,则执行与它。它将一直持续到最后一个条件为真。
句法:

if(condition1){
            // code 1
      if(condition2){
                  // code2
      }
}

流程图:

下面是确定三个整数中最大值的 Kotlin 程序。

Java

import java.util.Scanner
 
fun main(args: Array) {
  
    // create an object for scanner class
    val reader = Scanner(System.`in`)      
    print("Enter three numbers: ")
 
    var num1 = reader.nextInt()
    var num2 = reader.nextInt()
    var num3 = reader.nextInt()
 
    var max  = if ( num1 > num2) {
        if (num1 > num3) {
            "$num1 is the largest number"
        }
        else {
            "$num3 is the largest number"
        }
    }
    else if( num2 > num3){
        "$num2 is the largest number"
    }
    else{
        "$num3 is the largest number"
    }
    println(max)
 
}

输出:

Enter three numbers: 123 231 321
321 is the largest number