【Kotlin入門】ifの使い方をマスターしよう!whenについても解説


Kotlinでifの使い方を知りたい
Kotlinに三項演算子はあるの?

Kotlinでifを書こうと思っても少し今までと書き方などが変わっていて、戸惑っている人はいませんか?

こんにちは!エンジニアのかいです。Kotlinをこれから始めようとしている人、もしくは始めたての人であればプログラミングの基本中の基本であるifについて上記のような悩みを抱えている人も多いのではないでしょうか?

そこで、本日はKotlin初心者の方を対象にifの基本的な使い方を説明していきます。またif以外の条件分岐としてwhenというものも紹介するのでこの記事でKotlinの条件分岐について理解していただければ幸いです。

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

  • Kotlinをはじめたばかりなのでifの書き方がわからない
  • Kotlinで三項演算子を使いたい
  • whenの使い方についても触れてほしい

Kotlinのifとは

まずはじめに、この記事を見ている方の中には初学者の方もいると思うのでifとは何かについて軽く説明しておこうと思います。ifとは英語の意味通り「もし」を表す構文で、変数の値によって処理を変えたい時などに用いられます。

このようなある一定の条件によって処理を変えることを条件分岐といい、ifは条件分岐の代表的なものです。また、Kotlinにはwhenという強力な条件分岐も備えているのでこちらについても最後の章で説明します。

Kotlinでのifの使い方を見てみよう

さて、それでは実際に使い方をみていきましょう。

基本的な使い方

まずは、ifの基本的な使い方を解説していきます。最も基本的な使い方はこのようになります。もしcountが10より小さければHello ifを出力していますね。

fun main(args: Array<String>) {
    var count = 3
    if (count < 10){
       println("Hello if")
    }
}
Hello if

このようにelseを指定すると、ifの条件に当てはまらなかった時の処理がかけます。

fun main(args: Array<String>) {
    var count = 11
    if (count < 10){
        println("Hello if")
    }else{
        println("Hello else")
    }
}
Hello else

また、このように条件式を複数書きたい場合はelse ifでかけます。

fun main(args: Array<String>) {
    var count = 15
    if (count < 10){
        println("Hello if")
    }else if(count == 15){
        println("Hello else if")
    }else{
        println("Hello else")
    }
}
Hello else if

Kotlinのifは式であることに注意

ifくらい知ってるよ!という人も多いと思いますが、ここで注意なのがKotlinのifは文でなく式として扱います。よくif文if文と呼ぶのでこの感覚がない方も多いと思いますが、Kotlinではifは文ではなく式なのです。

つまりどういうことか以下のコードを見てみてください。

fun main(args: Array<String>) {
    var count = 15
    var msg = if (count < 10){
        "Hello if"
    }else{
        "Hello else"
    }
    println(msg)
}
Hello else

わかりますでしょうか?ifは式なので値を返すことができます。例えばこの処理をJavaで書こうとJavaではifは文なので思ったら中のロジックは、以下のようになります。

String msg = "";
if( count > 10 ){
    msg = "Hello if"
} else {
    msg = "Hello else"
}

Kotlinで三項演算子?

式で値を返すということは以下のようにも書けるわけですね。

fun main(args: Array<String>) {
    var count = 15
    var msg = if (count < 10) "Hello if" else "Hello else"
    println(msg)
}
Hello else

あれ、この形なんかみたことあるぞ。という方はいませんか?

そうです、Kotlinでは実質三項演算子のような処理がifで実装できるのです。なので、Kotlinには三項演算子は実装されていません。それもそのはずで、三項演算子とはif文、つまり条件分岐を式として行える演算子なのでデフォルトがif式のKotlinには必要ありませんね。

例えば、値を2つ確認して大きい方を返すという関数を作る場合、

fun compare(num1: Int, num2: Int): Int {
    if (num1 >= num2)
        return num1
    else
        return num2
}

fun main(args: Array<String>) {
    println(compare(3, 10))
}
10

このように書く言語が多いと思いますが、Kotlinでは、以下のように書くこともできます。

fun compare(num1: Int, num2: Int): Int = if (num1 >= num2) num1 else num2

fun main(args: Array<String>) {
    print(compare(3,10))
}
10

(サンプルですのでnum1とnum2を同じ値入れた場合でもnum1が返るという声もあると思いますがご容赦ください)

式の中では最後に評価された値が返されるのでreturnなども書く必要はありません。一見可読性が低いように見えますが、Kotlinでは日常的に行われています。

whenで条件分岐

さて、Kotlinの条件分岐にはifの他にもう一つwhenというものがあります。whenも同じく式でとても便利で強力な条件分岐となっています。

詳しい内容は以下の記事にまとめているので気になる方はぜひ確認してみてください。

【入門】Kotlinでwhenを使いこなそう!Javaとの違いについても解説
更新日 : 2019年6月19日

まとめ

本日はKotlinのifについて詳しく解説してきました。Kotlinでifは式であるということだけ押さえておけばバッチリだと思うのでこのままどんどんKotlinの学習を進めていきましょう!

それでは!!

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

かい

かい

日向徹かこよすぎか

[email protected]