まずは、if。ifは、C言語のif文と同じような使い方と、値を返す式としても使える。if文のような使い方は単に返す値を無視しているだけのような気もするw
C言語なんかと同じような書き方。
var a = 10
var b = 20
if(a > b) {
println("aの方が大きい")
} else {
println("bの方が大きい")
}
if式
var a = 10
var b = 20
var c = if(a > b) a else b
println("c=${c}")
var d = if(a > b) {
println("aの方が大きい")
a
} else {
println("bの方が大きい")
b
}
println("d=${d}")
ブロックの最期の式の値が返る。また、式の場合は値を返さないってことはできないのでelseが必要になる。
when式
C言語のswitch文にあたるようなものだ。
var a = 5
when(a) {
1 -> println("a = 1")
2 -> { // ブロックも書ける
println("a = 2")
}
3, 4 -> println("aは、3か4") // 複数の条件を与えるには ","で区切る
in 5..10 -> println("aは5~10の範囲") // 範囲指定もできる。この場合は、5以上で10以下。
else -> {
println("その他")
}
}
// when式
var b = when(a) {
1 -> "aは1"
else -> "aは1以外"
}
println(b)
whenもifと同じように式なんで値を返せる。
コメント