Kotlin if else判斷
阿新 • • 發佈:2017-09-26
表達式 else 最大值 最大 ret col 關系 urn spa
Kotlin的if相對與java,有著較為靈活的用法。
if是用來判斷。
if在Kotlin裏面可以作為表達式來使用。
如果熟悉C java C#等 A>B:A?B這個判斷應該是很熟悉,而Kotlin則是沒有。因為if就可以代替了。
好了,我們按順序學習。
傳統判斷:
fun main(args:Array<String>) { var x=15
var y=16 println("${x}和${y}兩個數比較大的是${Big(x,y)}") } fun Big(x:Int,y:Int):Int { if(x>y) returnx else return y }
用法簡單易懂。返回兩個數的最大數
else
是但if條件不成立的時候就執行esle代碼塊的東西。
語法:
if(條件) //條件是表達式或者數值 { 代碼xxxx } else //當if條件不成立的時候執行else內的代碼 { 代碼 }
if也可以單獨使用。
if(條件) { 代碼xxx }
if也可以進行多重嵌套
代碼實例:
fun main(args:Array<String>) { var x=27 var y=26 var z=25 println("${x},${y},${z}三個數比較大的是${Big(x,y,z)}") } fun Big(x:Int,y:Int,z:Int):Int { if (x>y) { if(x<z) { return z } else{ return x } } else { if (y>z) { return y; } else { return z } } return y }
這個就是一個if else嵌套。
以上就是if 的單分支 多分支 雙分支的用法。
也就是傳統的用法。
那麽我之前說過 if可以代替: ?這個判斷。
而這是什麽意思呢?
意思是if可以作為表達式,並且可以將if的結果作為值。不過註意的是if 的作為表達式的時候必須要有else部分代碼塊。
正好 我看上面這個判斷三個數最大值的代碼有點長 有點啰嗦。 我們用這個if 可以代替: ?的,可以作為表達式的特性 。來改一下。
代碼如下:
fun main(args:Array<String>) { var x=27 var y=25 var z=29 println("${x},${y},${z}三個數比較大的是${Big(x,y,z)}") } fun Big(x:Int,y:Int,z:Int):Int { var Max:Int; Max=if (x>y) x else y Max=if(Max>z)Max else z return Max }
這樣子if賦值在java中簡直不能想象。
太便利了。
這裏面值得註意的是,if(x>y)z 這個地方,是最後的值作為值,來進行賦值。
也就是if(x>y)printl("very Big")z, 作為值的是z,記住是最後一個作為一個值。如果是表達式,那麽表達式的值將作為值來進行賦值
fun main(args:Array<String>) { var x=27 var y=25 var z=29 println("${x},${y},${z}三個數比較大的是${Big(x,y,z)}") } fun Big(x:Int,y:Int,z:Int):Boolean { var Max:Boolean Max=if (x>y) x>y else false // Max=if(Max>z)Max else z return Max }
上面的代碼 瞎寫了一下。
就是讓你們看一下啊,if的結果賦值,可以是值,也可以表達式。
總結一下:
if有傳統的用法。
if 可以作為表達式
if可以將比較的結果當作值進行賦值。表達式也沒有關系。 if賦值的結果是最後位一表達式。
if作為表達式的時候必須要有else代碼塊。
Kotlin if else判斷