当前位置:网站首页>Kotlin introductory notes (III) kotlin program logic control (if, when)

Kotlin introductory notes (III) kotlin program logic control (if, when)

2022-07-05 09:14:00 Meng Meng Mu Xi

Preface : This tutorial is best done with JAVA Study on the basis of

One 、if Use of statements

kotlin There are two main ways to implement conditional statements in :if and when.

Same usage :

fun largerNumber(num1 : Int , num2 : Int) : Int{
    var value = 0
    if(num1 > num2) {
        value = num1
    } else { 
        value = num2
    }
    return value
}

Different usage :

fun largerNumber(num1 : Int , num2 : Int) : Int {
    val value = if (num1 > num2){
        num1
    }else{
        num2
    }
    return value
}

kotlin And java Of if The statements are roughly the same , but kotlin Of if Statement can have a return value !!!

But there is a problem with the above code ,kotlin It is the most concise language , The above code has too many unnecessary parts . stay kotlin in , We can use the following expression instead ( If you have unclear friends, you can read my first two blogs ):

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

Does it look much more comfortable ? Hem ...,Kotlin The charm of is still behind !

Two 、When sentence

use when And those still in use switch...case Compared with the language of , It's so happy ...( Roast about what anti human can't get rid of break) Don't talk much , Here comes the example ...... Ah , This example is complete , Why don't you see it yet ....

Suppose you compile a function to query exam scores ( if sentence ):

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

But when we use when when , You can compare :

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

Is it refreshing ?

The format is as follows :

when( Any type of parameter ) {

         Match the value -> { Perform logical }

}

When the execution logic has only one sentence , { } It can also be omitted . Of course , It's an exact match . In addition to precise matching , We also have type matching ... Examples are as follows :

fun checkNumber(num : Number) {
    when (num) {
        is Int -> println("num is Int")
        is Double -> println("num is Double")
        else -> println("num  neither  Int, Neither  Double")
    }
}

when There is another way to write a statement without parameters

Take the example just now :

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

Be careful ,Kotlin When judging whether strings or objects are equal, you can directly use == .( And Java Different )

In addition to this precise match ,when It can also cooperate with startsWith() Realization Fuzzy matching ( With Tom Everyone at the beginning 86 branch ):

fun getScore(name : String) = when {
    //  With Tom Everyone at the beginning 86 branch 
    name.startsWith("Tom") -> 86 
    name == "Jim" -> 77
    name == "Jack" -> 95
    name == "Jack" -> 100
}

Okay , That's all for this issue , Remember to pay attention if you like !!! RI Geng Zhong !!!

Kotlin The small white , I took notes while studying teacher Guolin's works . If there are any mistakes, please point out ! Thank you for reading !

Reference resources :

        《 First line of code Android ( The third edition )》   --- Guo Lin

原网站

版权声明
本文为[Meng Meng Mu Xi]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202140538292601.html