条件分岐 (if, else, when)

Kotlinにおける条件分岐は、他の多くの言語と同様に、処理の流れを制御するために使用されます。Kotlinでは主に if, else, when の構文が用意されていますが、Kotlin特有の表現方法や特徴があります。以下にそれぞれ詳しく説明します。


1. ifelse

基本構文

kotlin
if (条件式) { // 条件が真の場合の処理 } else { // 条件が偽の場合の処理 }

kotlin
val x = 10 if (x > 0) { println("x は正の数です") } else { println("x は 0 以下です") }

else if の使用

kotlin
if (x > 0) { println("x は正の数です") } else if (x == 0) { println("x は 0 です") } else { println("x は負の数です") }

式としての if

Kotlinでは if を**式(値を返す構文)**としても使用できます。

kotlin
val max = if (a > b) a else b

ブロック内で複数の処理を行い、最後の値を返すこともできます。

kotlin
val result = if (x > 0) { println("正の数") "positive" } else { println("負の数またはゼロ") "non-positive" }

2. when

when は Kotlin の強力な分岐構文で、Javaの switch に似ていますが、より柔軟です。値だけでなく条件式にも使用できます。

基本構文

kotlin
when (値) { 値1 -> 処理12 -> 処理2 else -> デフォルトの処理 }

kotlin
val x = 3 when (x) { 1 -> println("1です") 2, 3 -> println("2か3です") in 4..10 -> println("4〜10の間です") else -> println("それ以外です") }

when を式として使う

kotlin
val result = when (x) { 1 -> "one" 2 -> "two" else -> "unknown" }

when に引数を与えない使用法(条件分岐的な使用)

kotlin
when { x < 0 -> println("負の数です") x == 0 -> println("ゼロです") else -> println("正の数です") }

この形式では when は複数の条件式に基づいて分岐するため、if-else の代替として使われます。


まとめ

構文 用途 特徴
if 単純な条件分岐 式としても使用可能
if-else 複数条件の逐次評価 ネストが深くなりすぎるのに注意
when 値による分岐・条件による分岐 柔軟で読みやすく、式としても使える

生成日:2025/05/04