#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専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本