Kotlin學習筆記-----if和when

條件控制

if條件判斷

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表達式

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)
相關文章
相關標籤/搜索