Kotlinで条件式をネストする方法!多段条件分岐の基本を解説
生徒
「先生、Kotlinで条件をいくつも組み合わせて判断したいときはどう書くんですか?」
先生
「それはifの中にifを入れる“ネスト”という書き方を使います。多段条件分岐とも呼ばれ、複数の条件を順番にチェックできます。」
生徒
「初心者の僕でも書けるようになりますか?」
先生
「もちろんです。わかりやすい手順と例で、一緒に見ていきましょう!」
1. 条件式をネストするとは?
条件式のネストとは、「もしAならこう、じゃなければBの中でもさらに判断して…」という、複数段階で判断をくわえる方法です。初心者の方にも、わかりやすく言えば、料理で「もし甘いなら砂糖を減らす、でも酸っぱいなら砂糖を増やす」ような手順をそのままプログラムにするイメージです。
if文は通常、if(条件){…} else {…}ですが、そのelseの中にまたifを書いて「ネスト(入れ子)」にします。
2. ネストの基本例
では、例を見てみましょう。年齢によって「子供」「成人」「高齢者」に分ける場合です。
fun main() {
val age = 70
if (age < 20) {
println("子供")
} else {
if (age < 65) {
println("成人")
} else {
println("高齢者")
}
}
}
このコードでは、最初に「20未満か」を調べ、違っていたらさらに「65未満か」で判断しています。3種類を分けられる「多段条件分岐」の典型的な使い方です。
3. else if を使ってスッキリ書く
Kotlinでは、elseの中にわざわざifと書かなくても、else ifを使えばもっとスッキリ書けます。
fun main() {
val age = 70
if (age < 20) {
println("子供")
} else if (age < 65) {
println("成人")
} else {
println("高齢者")
}
}
このようにすると、「ネストが浅くなって見やすい」「追加の条件も簡単に増やせる」というメリットがあります。
4. 複数条件をネストするときの注意点
ネストするときは、
- 条件の順番:上から順にチェックされます。重要な条件は先に書きましょう。
- インデント(字下げ):コードが深くなると見にくくなるので、インデントをきちんと整えることが大切です。
- 評価の重複:同じ条件を何度も書かないように注意が必要です。
5. if式で値を返すパターン
さらに、if式は「値として使える」ので、ネストして値を返すこともできます。関数や変数の代入で使うときに便利です。
fun category(age: Int): String {
return if (age < 20) {
"子供"
} else if (age < 65) {
"成人"
} else {
"高齢者"
}
}
println(category(70)) // 高齢者
このように書くと、「関数の返り値」を条件に応じて返す多段条件分岐になります。
6. when式でネストを簡単にする方法
Kotlinには、when式というswitchに似た構文があり、ネストを減らしてもっと分かりやすく書けます。
fun category2(age: Int): String {
return when {
age < 20 -> "子供"
age < 65 -> "成人"
else -> "高齢者"
}
}
println(category2(70)) // 高齢者
この方法なら、else ifよりもさらにシンプルに条件分岐をまとめて扱えます。
7. ネスト条件分岐の書き方まとめ
多段条件分岐の基本としては、
if文でネストして段階的に判断else ifを使ってスッキリwhen式でさらにわかりやすく
初心者でも「条件を順番に並べて判断する」流れがイメージできれば、ネストもすぐに使いこなせます。