if的使用和java裏面同樣java
// Java中的if int score = 90; if (score >= 90 && score <= 100) { System.out.println("優秀"); } else if (score >= 80 && score <= 89) { System.out.println("良好"); } else if (score >= 60 && score <= 79) { System.out.println("及格"); } else if (score >= 0 && score <= 59) { System.out.println("不及格"); }
// Kotlin中的if var score = 100; if (score >= 90 && score <= 100) { System.out.println("優秀"); } else if (score >= 80 && score <= 89) { System.out.println("良好"); } else if (score >= 60 && score <= 79) { System.out.println("及格"); } else if (score >= 0 && score <= 59) { System.out.println("不及格"); }
可是若是有本身的特性優化
// 假設求兩個數的最大值 // java代碼 int a = 3; int b = 4; int max = 0; if(a > b) { max = a; } else { max = b; }
可是在kotlin中, 能夠進行優化spa
var a = 3 var b = 4 var max = 0 max = if(a > b) { a } else { b } // 只不過寫習慣java後,這樣的形式看起來不習慣
另外, kotlin中能夠經過in 來表示某個變量的範圍, 可以代替java中繁瑣的 &&來表示 一個變量的範圍code
var score = 100 // score in 0..59 表示的就是 0 <= score <= 59 // in 表示範圍時, 確定會包含兩個端點的值, 也就是包含0 和 59 // 若是想要用in來表示不包含0和59, 如: 0 < score < 59 // 那麼就要調整範圍到 1~58, 也就是 score in 1..58 // 使用in後, 代碼能夠表示以下形式 if (score in 0..59) { print("不及格") } else if (score in 60..79) { print("及格") } else if (score in 80..89) { print("良好") } else if (score in 90..100) { print("優秀") }
when表達式和java中的switch相似, 可是java中的switch沒法表示一個範圍, 而when能夠和in來結合使用, 表示一個範圍blog
// 基本格式 // 而且不一樣於java中的switch只能表示 byte short int char String 枚舉等類型, // kotlin中的when能夠表示不少類型, 好比boolean var number = true when (score) { true -> { print("hello") } false -> print("world") // ->後面的大括號, 若是不寫, 那麼默認執行最近的一行代碼 }
// 上面那個if寫的根據不一樣分數, 作不一樣輸出的代碼, 若是使用when來作
var score = 100 when(score) { in 0..59 -> print("不及格") in 60..79 -> print("及格") in 80..89 -> print("良好") in 90..100 -> print("優秀") else -> print("信息有誤") // 效果和if中的else, switch中的default同樣 }
一樣, 判斷兩個數最大值能夠用when表示爲:it
val a = 3 val b = 4 val max = when(a > b) { // 這裏可以看到, switch中是不支持a > b這種寫法的, 而when中能夠 true -> a false -> b } print(max)