#5 Kotlinで学ぶ条件分岐の基本
Kotlinの条件分岐は、Rustと同じく「値を返すif」という特徴を持っています。この記事では、Kotlinにおける条件分岐の基本と、強力なwhenを解説します。
if文の基本
val age = 20
if (age >= 18) {
println("成人です")
} else {
println("未成年です")
}
ifが値を返せるという特徴
Kotlinのifは、式として値を返すことができます。
val message = if (age >= 18) "成人です" else "未成年です"
他の言語の三項演算子に近い書き方を、ifだけで表現できるのがKotlinらしい特徴です。実際、Kotlinには三項演算子(? :)自体が存在しません。
whenという便利な書き方
候補が多い場合は、Javaのswitchに相当するwhenという書き方が使えます。
val result = when (score) {
in 90..100 -> "優"
in 70..89 -> "良"
else -> "可"
}
breakを書く必要がなく、範囲の指定もそのまま書けるため、Javaのswitchよりも柔軟で読みやすいのが特徴です。
whenは型のチェックにも使える
whenは、値の型に応じた分岐にも使えます。
fun describe(x: Any): String = when (x) {
is Int -> "整数です: $x"
is String -> "文字列です: $x"
else -> "不明な型です"
}
isを使った型チェックと、その後のブロック内でその型として自動的に扱われる「スマートキャスト」という仕組みが組み合わさっており、明示的な型変換なしにそのまま使えます。
Kotlinならではの注意点
三項演算子がない代わりにifを式として使うという設計は、他の言語の経験がある人ほど最初は戸惑うポイントです。「Kotlinには三項演算子がない」という点を覚えておくだけで、混乱を避けられます。whenを式として使う場合、すべてのパターンを網羅している必要があり、elseを書き忘れるとコンパイルエラーになることがある点にも注意しましょう。
条件を指定しないwhen
whenは、対象の値を指定せずに、if-elseの連鎖の代わりとして使うこともできます。
val message = when {
age >= 65 -> "高齢者です"
age >= 18 -> "成人です"
else -> "未成年です"
}
各行に真偽値を返す条件式を書けるため、範囲の判定に限らず柔軟な条件分岐を表現できます。
まとめ
Kotlinの条件分岐はifを式として使えるのが大きな特徴で、whenを使えば複雑な条件分岐や型チェックも読みやすく書けます。
本ページはプロモーションを含みます。
参考書籍(PR)
Kotlinをもっと学びたい方には「やさしいKotlin入門」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿