【入門】Kotlinでwhenを使いこなそう!Javaとの違いについても解説

Kotlinでwhenの使い方を学びたい
JavaからKotlinに入ったけど構文の違いを比較しながら確認したい

Kotlinをこれから学ぼうとしている方の中には上記のような悩みを抱えている人も多いのではないでしょうか?

こんにちは!現役エンジニアのかいです。今日は、Kotlin初心者のためにwhenの使い方を徹底的に解説していこうと思います。

Kotlinを学ぶ方の中には、以前までJavaを書いていた人も多いのでJavaとの比較も紹介していきます。whenは使いこなせるようになると、とても便利ですのでこれを機にぜひマスターしていってください!

この記事はこんな人のために書きました

  • Kotlinでwhenを使ってみたい
  • Javaとどのような違いがあるのか知りたい
  • 様々な違いをみてみたい

Kotlinのwhenとは

まずKotlinのwhenとはどのようなものかを説明しておきます。whenはJavaや他言語で言う所のswitch文のようなものです。

ただ、従来までのswitch文と比べてStringの比較ができたり引数を取らないなんてこともできるのでswitch文の上位互換といったところでしょうか。詳しい内容は後述しますが、少なくともJavaのswitch文と比べると上位互換ということができとても書きやすくなっています。

後述の内容でどのようなものかわかるので特に必要はないですが、Javaのswitch文について詳しく知っておきたい方は以下の記事を参考にしてみてください。

whenを引数ありで使ってみよう

説明ばかりしていても仕方ないので実際に使い方をみていきましょう!最初は引数をとった場合をみていきます。

Kotlinでのコードを見てみよう

こちらがKotlinのwhen文です。switchがwhenに代わり、caseが->に代わったといったところでしょうか。引数を与えず中で判定させることも可能です。

また、以下のようにブロックとして記述することも可能です

さらに、Kotlinのwhenは式です。なので値を返すことができます。

Javaでのコードをみてみよう

では上記のwhen式をJavaで書くとどうなるのかみてみましょう。

こんな感じでしょうか。大変ですね正直。そういえばKotlinではbreakなども書く必要はありません。

inで範囲を調べてみよう

もう少し使いこなすためにどんどん使っていきましょう。試しにここではinを使ってRangeで条件分岐してみましょう。

こんな感じになりますね。まあ実際はこの書き方だと浮動小数点型などであれば値が漏れやすい(79.5点など)ので気をつけてくださいね。

isで型判定を行ってみよう

次はisで型判定を行ってみます。どんどん使っていきます!

うーん、使いやすくてわかりやすいですね!

whenを引数なしで使ってみよう

それでは次はwhenを引数なしで使ってみましょう。ちなみに引数なしで使うとif文のように分岐させることができます。

このように、ばななが評価された後は評価されていないことがわかりますね。このようにif-elseの代用として利用することも可能です。

まとめ

まとめると、when最高という感じですね。読みやすいし書きやすいのでかなり便利です。

KotlinはAndroidのみならずこれからサーバーサイドでもどんどん活躍していく(筆者の予想ですが)のでJavaには隠居していただいて、確実にマスターしておきたいところですね。中でもwhenは基本中の基本ですのでみなさん自由に書いてみて使い方に慣れていってください!

それでは!!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

かい

かい

日向徹かこよすぎか

[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説