カテゴリ: Kotlin 更新日: 2026/03/05

Kotlinのwhen式の使い方!Javaのswitchに相当する書き方を解説

Kotlinのwhen式の使い方!Javaのswitchに相当する書き方を解説
Kotlinのwhen式の使い方!Javaのswitchに相当する書き方を解説

先生と生徒の会話形式で理解しよう

生徒

「KotlinにはJavaのswitch文みたいなものがありますか?」

先生

「はい!Kotlinではswitch文の代わりにwhen式を使います。とても便利なので、一緒に使い方を学んでいきましょう。」

生徒

「どうやって書くんですか?書き方を教えてください!」

先生

「では、Kotlinのwhen式の基本的な書き方から見ていきましょう!」

1. Kotlinのwhen式とは?

1. Kotlinのwhen式とは?
1. Kotlinのwhen式とは?

Kotlinのwhen式は、条件によって処理の内容を切り替えるための構文です。Javaで使われていたswitch文の代わりとして用意されており、Kotlinではこちらを使うのが基本になります。

プログラムでは「値によって動きを変えたい」という場面がよくあります。たとえば「数字が1なら○○、2なら△△」のような判断です。こうした条件分岐(じょうけんぶんき)を、when式を使うと読みやすく書けます。

難しく考えなくても大丈夫です。when式は「今の値がどれに当てはまるかを順番にチェックする仕組み」だと思ってください。


fun main() {
    val signal = "青"

    when (signal) {
        "赤" -> println("止まりましょう")
        "青" -> println("進んでも大丈夫です")
        "黄" -> println("注意して進みましょう")
        else -> println("信号の色が分かりません")
    }
}

この例では、signalの値によって表示されるメッセージが変わります。値が「青」なので、「進んでも大丈夫です」と表示されます。

このようにwhen式を使うと、「どの値のときに、何をするのか」が一目で分かるコードになります。条件が増えても整理しやすいのが、Kotlinのwhen式の大きな特徴です。

2. when式の基本的な書き方

2. when式の基本的な書き方
2. when式の基本的な書き方

Kotlinのwhen式は、「いま入っている値が何か」を見て、実行する処理を切り替えます。基本形は、when (値)のあとに、条件 -> やることを並べるだけなので、初めてでも読みやすいです。

たとえば、テストの点数(数字)から「評価」を表示したいときなど、同じ変数を何度も比べる場面で便利です。もしifをたくさん並べると長くなりがちですが、whenならスッと整理できます。


fun main() {
    val number = 2

    when (number) {
        1 -> println("数字は1です")
        2 -> println("数字は2です")
        3 -> println("数字は3です")
        else -> println("1から3以外の数字です")
    }
}

この例では、numberの値に合う行だけが実行されます。number2なので、「数字は2です」が表示されます。

また、どれにも当てはまらない場合に備えてelseを書いておくと安心です。たとえば0100などが入っても、プログラムが困らずに「それ以外」として処理できます。

3. 実行結果の確認

3. 実行結果の確認
3. 実行結果の確認

では、さきほどのプログラムを実行したときに「画面に何が出るのか」を確認してみましょう。printlnは、カッコの中に書いた文章をそのまま表示する命令です。

今回の例では、number2が入っているので、when (number)の中で2 ->の行が選ばれます。その結果、次の1行が出力されます。


数字は2です

もしnumber1に変えれば「数字は1です」、3に変えれば「数字は3です」と表示されます。逆に、010のように当てはまらない値なら、elseのメッセージが表示されます。実行結果を見ると、条件分岐がちゃんと動いているかがすぐ分かります。

4. elseとは?

4. elseとは?
4. elseとは?

elseは、「どの条件にも当てはまらなかった場合に実行される部分」です。言いかえると、最後の保険(にげ道)のような役割があります。

たとえば、when (number)で「1・2・3」のときだけを書いていたとしても、実際のプログラムでは04、思いがけない値が入ることがあります。そんなときにelseがないと、何も実行されず「表示されない」「意図しない動きになる」原因になります。

だから初心者のうちは、特別な理由がない限りelseは付けておくのがおすすめです。そうすると、当てはまらない場合でも「それ以外です」といったメッセージを出せて、動きが分かりやすくなります。

初心者向け:elseは「想定外」のチェックにもなる

elseのメッセージが出たら、「あれ?想定していない値が入っているかも」と気づけます。条件分岐のミスを早めに見つける助けにもなります。

5. when式を使った文字の例

5. when式を使った文字の例
5. when式を使った文字の例

when式は数字だけでなく、文字文字列でも同じように使えます。たとえば「入力された言葉によってメッセージを変える」「曜日に合わせて表示を切り替える」といった場面でよく登場します。

ポイントは、when (day)のように「判断したい文字列」を指定しておき、"月曜日" ->のように一致したときの処理を書いていくことです。初心者の方は、まず「完全に同じ文字なら一致する」と覚えるとスムーズです。


fun main() {
    val day = "月曜日"

    when (day) {
        "月曜日" -> println("週のはじまりですね")
        "金曜日" -> println("週末が近いですね")
        "土曜日", "日曜日" -> println("お休みの日ですね")
        else -> println("平日です")
    }
}

この例では、dayが「月曜日」なので「週のはじまりですね」と表示されます。

また、"土曜日", "日曜日"のようにカンマ,で区切ると、どちらかに当てはまれば同じ処理にできます。似た条件をまとめられるので、コードが読みやすくなります。

初心者向け:文字のゆれに注意しよう

たとえば「月曜」と「月曜日」は別の文字列なので一致しません。入力がバラつきそうなときは、まずは表示したい候補をそろえて書くのが安心です。

6. 値を返すwhen式の使い方

6. 値を返すwhen式の使い方
6. 値を返すwhen式の使い方

when式は、条件によって違う値を変数に入れることもできます。これはwhenが「式(しき)」だからです。次の例を見てください。


fun main() {
    val number = 3

    val message = when (number) {
        1 -> "数字は1です"
        2 -> "数字は2です"
        else -> "それ以外の数字です"
    }

    println(message)
}

when式の結果をmessageという変数に入れて、あとからprintlnで表示しています。条件ごとに違う文字列を作るときに便利です。

7. Kotlinのwhen式とJavaのswitch文のちがい

7. Kotlinのwhen式とJavaのswitch文のちがい
7. Kotlinのwhen式とJavaのswitch文のちがい

Javaではswitch文を使いますが、Kotlinではwhen式を使います。Kotlinのwhen式は次のような特徴があります。

  • 条件にカンマを使って複数の値をまとめて書ける
  • elseが必ず最後に書ける
  • 式として使えて、値をそのまま代入できる

これにより、条件が多いプログラムでもすっきり書けます。

8. when式のポイント

8. when式のポイント
8. when式のポイント

ここまで、Kotlinのwhen式の基本的な使い方を解説しました。Javaのswitch文のように条件ごとに処理を切り替えられますし、条件に合わない場合はelseでまとめて書けるのが便利です。when式は「プログラムの条件分岐」にとてもよく使われるので、ぜひ覚えておいてくださいね!

Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。

基礎からわかるKotlinをAmazonで見る

※ Amazon広告リンク

まとめ

まとめ
まとめ

ここまで、Kotlinのwhen式について、基本的な書き方から実際の使用例、そしてJavaのswitch文との違いまで幅広く触れてきました。振り返ってみると、when式は条件分岐をシンプルに書けるだけではなく、複数条件をまとめて扱えたり、式として値を返すことができたりと、多くの場面で役に立つ構文であることがわかります。特に、複雑な条件を書かずにすっきりとまとめられる点は、大規模なプログラムや長い処理を書いていく場面で大きな力を発揮します。

初心者のうちは、条件分岐の書き方に迷うこともありますが、when式の柔軟さを理解して使いこなせるようになれば、より読みやすく保守しやすいコードが書けるようになります。when式は数字だけでなく、文字列や範囲、さらには条件そのものを評価するパターンも扱うことができます。こうした特徴は、日常的なプログラムの中でも頻繁に利用される要素となり、シンプルな判断から複雑なロジックまで幅広く応用できます。

さらに、when式が「式」であることにより、値を返す構文としても扱える点は、Javaのswitchに比べて明確な違いとなっています。単に条件に応じて処理を切り替えるだけではなく、条件に応じて変数に値を代入する処理を簡単に書けるため、コードの見通しが良くなり、記述量も減らすことができます。また、elseを使って「どれにも当てはまらない場合」の処理をまとめて書ける点は、予期しない値が入力されたときの安全性にもつながります。

そして、複数条件をカンマでまとめられる機能は、例えば曜日や種別などの分類が必要な場面で非常に有用です。「土曜日」と「日曜日」をセットで扱いたいような場合でも、個別に条件を書かなくて済むため、プログラム全体の見通しも自然と向上します。開発現場ではこのようなケースが多く存在するため、when式の理解はKotlinを書いていく上で欠かせない基礎力のひとつになります。

以下に、今回学んだ内容を簡潔にまとめつつ、応用の幅を広げられるサンプルプログラムを用意しました。ひとつのプログラムの中で複数のwhen式の特徴を確認できるように構成しています。学習の復習と理解の定着に役立ててください。

サンプルプログラム:when式を使った複数条件の処理例


fun describeNumber(num: Int): String {
    return when (num) {
        1 -> "いちをえらびました"
        2, 4, 6, 8 -> "偶数のなかでも特定の数字です"
        in 10..20 -> "10から20の範囲にふくまれています"
        else -> "その他のすべての数字です"
    }
}

fun checkDay(day: String): String {
    return when (day) {
        "月曜日" -> "しゅうのはじまりです"
        "金曜日" -> "しゅうまつまでもうすこしです"
        "土曜日", "日曜日" -> "おやすみです"
        else -> "へいじつです"
    }
}

fun main() {
    val numberMessage = describeNumber(12)
    println(numberMessage)

    val dayMessage = checkDay("土曜日")
    println(dayMessage)

    val result = when (val value = 3) {
        1 -> "ひとつの値"
        2 -> "ふたつの値"
        else -> "それいがいの値:$value"
    }
    println(result)
}
先生と生徒の振り返り会話

生徒

「きょうのまとめを読んで、when式がとても便利なことがわかってきました。switchより書きやすいという理由がよく理解できました!」

先生

「その理解はすばらしいですよ。Kotlinのwhen式は、読みやすさと柔軟さが大きな強みです。値を返せるところも特徴的ですね。」

生徒

「複数の条件をカンマでまとめられるのも便利ですね。曜日の例は実際のアプリでも使えそうだなと思いました。」

先生

「そうそう。土日をまとめて条件に書きたい場面はよくありますからね。範囲指定もできるので、数字の判定に使っても効率的です。」

生徒

「値を返すwhen式もおもしろいですね。変数に代入して使えるのは便利ですね。」

先生

「そのとおりです。とてもよく使うパターンなので、コードを書くたびに慣れていくと思いますよ。これからもっと複雑な条件の処理にも挑戦していってください。」

関連セミナーのご案内

【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分

「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。

本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。

具体的な体験内容と環境

【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。

【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。

この60分で得られる3つの体験

1. 自分のパソコンが「開発基地」に

プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。

2. プログラミングの「仕組み」がスッキリ

「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。

3. 「読みやすい」から「直せる」へ

Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。

※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。

セミナー画像

Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Go言語
Go言語プログラムの実行方法まとめ!VSCode・ターミナルでの実行手順を解説
New3
Swift
Swift意味とは?プログラミング言語・金融・鳥の違いを徹底解説
New4
Swift
Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.6
Java&Spring記事人気No6
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.7
Java&Spring記事人気No7
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.8
Java&Spring記事人気No8
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説