【第8章】whenを使った条件分岐について詳しく解説

【第8章】whenの条件分岐について解説 基礎勉強
スポンサーリンク
リンコ
リンコ

こんにちは!リンコですピヨ!この記事では自分の勉強の復習もかねて、Kotlinでのwhenを使った条件分岐について詳しく解説するピヨ!

この第8章では、プログラミング言語であるKotlinのwhenを使った条件分岐について、一緒に勉強していきましょう。

この記事を読めばプログラミング未経験の方も、Kotlin入門レベルのwhenを使った条件分岐について1つ1つ理解しながら勉強できると思うので、是非最後まで読んで頂ければと思います。

※この記事で出てくる「サンプルコード」は、記述が長く画面からはみ出ている場合がありますが、横にスライドすると表示されるのでご安心ください。

スポンサーリンク

【Kotlin】whenとは?

【Kotlin】whenとは?

まずKotlinでのwhenの使い方を勉強していく前に、そもそも「whenとは何か?」というところを簡単に説明します。

whenは第7章で勉強した「if」と同じように、プログラムの流れを制御する命令文の1つで、条件ごとに処理を切り替える機能を持っています

勉強していくうちにわかると思いますが、ifとwhenはほとんど同じ機能なので、使う場面も一緒です。

どちらを使うかは好みの問題になるので、ifもwhenもしっかり頭に入れてどちらを使っていくか見極めていきましょう。

リンコ
リンコ

whenはifと同じで処理結果によって出力内容を変えることができるピヨ!

【Kotlin】whenの使い方

【Kotlin】whenの使い方

ではさっそくwhenの使い方を勉強していきましょう。

whenの書式

whenを使う場合の書式は以下のようになります。

when(条件) {
  値1 -> println("出力文")
  値2 -> println("出力文")
  else -> println("出力文")
}

whenの隣の()内に条件を記述

whenの後に続く()内に判定したい変数などを記述します。これはifと全く同じですね。

{}内では条件の値となる候補を用意

{}内には()に記述されている条件と一致するであろう値の候補をいくつか用意します。

条件の値が->の左側の値と一致すれば、->の右側の処理を実行するようになっています。

最後は必ずelseでしめる

指定した候補のどれとも一致しない場合は、最後のelseの->の右側の処理が実行されます。

リンコ
リンコ

これがwhenの基本の記述の仕方なので、しっかり覚えるピヨ!

whenを使ったコードを記述してみよう

whenの書式がわかったところで、実際にコードを記述してみましょう。

サンプルコード

以下のサンプルコードではwhenの条件に挨拶を表す「good evening」を代入した変数hを記述しています。

val h = "good evening"
when(h) {
  "good morning" -> println("おはようございます")
  "hello"        -> println("こんにちは")
  "good evening" -> println("こんばんは")
   else          -> println("おやすみ")
}

出力

サンプルコードを実行すると、以下のように出力されます。

こんばんは

条件の変数hの中身は「good morning」や「hello」ではなく「good evening」なので「こんばんは」と出力されましたね。

【Kotlin】whenの候補の値には複数記述もできる

whenの候補の値には複数記述もできる

whenのコードを記述する際、候補の値には複数の値を記述することもできます

候補の値を複数記述する場合の書式

複数の候補の値を記述する場合はどのようにするのでしょうか?書式を見てみましょう。

when(条件) {
  値1,値2 -> println("出力文")
  値3 -> println("出力文")
  else -> println("出力文")
}

このように、複数の候補の値を記述する時は「,(カンマ)」で区切るようにして記述します。

複数の値の候補があるコードを記述してみよう

では実際に、カンマを使って複数の候補があるコードを記述してみましょう。

サンプルコード

以下のサンプルコードでは、whenの条件に数字の「10」を代入した変数numを記述しています。候補の値が文字列の時は「””」で囲っていましたが、今回は整数なので「””」は使いません

val num = 10
when(num) {
  5  -> println("数字の5です")
  10,15    -> println("数字の10か15です")
  else -> println("5と10と15以外の数字です")
}

出力

サンプルコードを実行すると、以下のように出力されます。

数字の10か15です

変数numの値は「10」なのでカンマで区切っていた候補の値の「10,15」の出力文「数字の10か15です」が出力されましたね。

リンコ
リンコ

カンマを使うことで複数の値の候補が記述できるようになるピヨ!

【Kotlin】whenを式として値を返すこともできる

whenを式として値を返すこともできる

最後に、if同様にwhenでも式として値を返すことができます。実際にコードを見て深く理解していきましょう。

サンプルコード

以下のサンプルコードでは、条件の変数xに一致する出力文を、変数msgに代入するという式になっています。

val x = "aiueo"
val msg = when(x) {
  "aiueo"     -> "あいうえお"
  "kakiku"     -> "かきく"
  "keko"     -> "けこ"
  else  -> "さしすせそ"
}
println(msg)

出力

サンプルコードを実行すると、以下のように出力されます。

あいうえお

変数xの中身は「aiueo」なので「あいうえお」が変数msgに代入され、最後にprintln関数が実行し「あいうえお」が出力されました。

リンコ
リンコ

whenを式として値を返すことができるのも、ifと同じピヨ!

まとめ

まとめ

この記事では、プログラミング言語であるKotlinのwhenを使った条件分岐について勉強していきましたが、いかがでしたでしょうか?今回の記事をまとめると以下のようになります。

  • ifとwhenはほとんど同じ機能で、使う場面も同じ
  • 「->」を使い、条件の値が「->」の左側の値と一致すれば、->の右側の処理が実行される
  • 候補の値を複数記述する場合は「,」を使う
  • ifと同様にwhenも式として値を返すことができる

今回勉強した「whenを使った条件分岐」はKotlinの入門レベルの知識になるので、何回も読み直してしっかり覚えておきましょう。

リンコ
リンコ

次回の記事では「forを使った繰り返し処理やstepとdownTo」について勉強していくピヨ!
プログラミング未経験の方や入門レベルの方、Kotlinについて詳しくなりたい方は、また一緒に勉強するピヨ!

コメント

タイトルとURLをコピーしました