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のifについて詳しく解説してきました。Kotlinでifは式であるということだけ押さえておけばバッチリだと思うのでこのままどんどんKotlinの学習を進めていきましょう!
それでは!!