【Kotlin】ifで条件分岐の処理を行う!使い方を解説!
(*このページは2021年2月19日に更新されました。)
Kotlinで条件によって処理の内容を変えるにはifを使用します。
ifとは条件分岐を行う構文であり、Aの場合はAの処理を行い、Bの場合はBの処理を行うというように条件によって処理を変えることができます。
そして、ifの中にifを使用すると、多重の条件分岐の処理を行うことができ、変数にifを使用すると、変数の返す値を変更することができます。
また、条件処理を行う際に使用する構文はif以外にもwhenというものがあり、whenは多岐の条件分岐に適しています。
今回はKotlinのifで条件分岐の処理を行う方法について以下の内容で解説していきます。
⚫︎ ifとは
⚫︎ ifのみで条件処理を行う場合
⚫︎ if…elseで条件処理を行う場合
⚫︎ if…else ifで条件処理を行う場合
⚫︎ ifの中にifを使用して条件分岐を行う場合
⚫︎ ifで条件処理を行った値を返す場合
目次
ifとは
ifとは、条件分岐を行う場合に使用する文法であり、条件の判断はtrueとfalseの真偽値となります。
ifの書き方
ifの書き方は下記の3つとなります。
1 2 3 |
if (式) { 処理内容1 } |
ifの式がtrueであるならifの括弧内の処理内容が行われ、falseであるなら処理を行わずにスルーします。
1 2 3 4 5 |
if (式) { 処理内容1 } else { 処理内容2 } |
ifの式がtrueであるならifの括弧内の処理内容が行われ、falseであるならelseの括弧内の処理内容が行われます。
1 2 3 4 5 6 7 |
if (式) { 処理内容1 } else if { 処理内容2 } else { 処理内容3 } |
ifの式がtrueであるならifの括弧内の処理内容が行われ、falseであるならelse ifの式で判断されるようになります。
そして、else ifの式がtrueであるならelse ifの括弧内の処理内容が行われ、falseであるならelseの括弧内の処理内容が行われます。
ifを使用した基本的なサンプルコード
ifを使用した基本的なサンプルコードを紹介します。
ifのみで条件処理を行う場合
ifのみを使用して条件処理を行ってみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 |
fun main() { println("ifのみで条件分岐") numCheck(12) numCheck(15) } fun numCheck(num: Int) { println("・数値: ${num}") if (num % 2 == 0) { println("numは偶数です") } } |
出力結果
ifのみで条件分岐
・数値: 12
numは偶数です
・数値: 15
ifのみを使用して条件分岐の処理を行うことで式の結果がtrueの場合のみの処理を設定することができます。
そのため、数値が偶数である場合は「numは偶数です。」が表示されますが、数値が奇数である場合は何も処理が行われません。
<.p>
if…elseで条件処理を行う場合
if…elseを使用して条件処理を行ってみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
ffun main() { println("if...elseで条件分岐") numCheck(6) numCheck(17) } fun numCheck(num: Int) { println("・数値: ${num}") if (num % 2 == 0) { println("numは偶数です。") } else { println("numは奇数です。") } } |
出力結果
if…elseで条件分岐
・数値: 6
numは偶数です。
・数値: 17
numは奇数です。
if…elseを使用して条件分岐の処理を行うことで式の結果がtrueかfalseの場合に処理を分けることができます。
そのため、数値が偶数である場合は「numは偶数です。」が表示され、数値が奇数である場合は「numは奇数です。」と表示されます。
if…else ifで条件処理を行う場合
if…else ifを使用して条件処理を行ってみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
fun main() { println("if...else ifで条件分岐") numCheck(6) numCheck(-17) numCheck(0) } fun numCheck(num: Int) { println("・数値: ${num}") if (num > 0) { println("numは正の整数です。") } else if (num < 0) { println("numは負の整数です。") } else { println("numは0です。") } } |
出力結果
if…else ifで条件分岐
・数値: 6
numは正の整数です。
・数値: -17
numは負の整数です。
・数値: 0
numは0です。
if…else ifを使用して条件分岐の処理を行うことで式の結果がtrueかfalseの場合に処理を分けることができ、falseの場合にさらに条件分岐を行うことができます。
そのため、数値が0より大きい場合は「numは正の整数です。」が表示され、数値が0より小さい場合は「numは負の整数です。」と表示され、0の場合は「numは0です。」と表示されます。
ifを使用した応用的なサンプルコード
ifを使用した応用的なサンプルコードを紹介します。
ifの中にifを使用して条件分岐を行う場合
ifの中にifを使用して条件分岐を行うことができます。
これは、ネストと呼ばれ、trueやfalseの判定後、さらに条件を設定することができるので、多重の条件を設定することができます。
しかし、多重にしすぎるとどこの処理なのかが分かりにくくなりますので、なるべく多重の条件処理は避けるようにしましょう。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
fun main() { println("多重条件で条件分岐") numCheck(70) numCheck(6) numCheck(-17) numCheck(-100) numCheck(0) } fun numCheck(num: Int) { println("・数値: ${num}") if (num > 0) { if(num > 50) { println("numは正の整数で50より大きいです。") } else { println("numは正の整数で50以下です。") } } else if (num < 0) { if (num > -50){ println("numは負の整数で-50より大きいです。") } else { println("numは負の整数で-50以下です。") } } else { println("numは0です。") } } |
出力結果
多重条件で条件分岐
・数値: 70
numは正の整数で50より大きいです。
・数値: 6
numは正の整数で50以下です。
・数値: -17
numは負の整数で-50より大きいです。
・数値: -100
numは負の整数で-50以下です。
・数値: 0
numは0です。
ifの中にifを使用することで多重の条件分岐の処理を行うことができます。
そのため、70だと「numは正の整数で50より大きいです。」、6だと「numは正の整数で50以下です。」、-17だと「numは負の整数で-50より大きいです。」、-100だと「numは負の整数で-50以下です。」、0だと「numは0です。」が表示されています。
ifで条件処理を行った値を返す場合
ifで条件処理を行った値を返すことができます。
一体どういうことなのかというと、条件によって値を変える変数を定義することが可能となります。
例えば、変数の数値によってA〜Dのランクを表示する変数を定義することができます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
fun main() { evaluation(55) evaluation(66) evaluation(76) evaluation(85) evaluation(100) } fun evaluation (score: Int) { val rank = if (score >= 90) { "S" } else if (score >= 80) { "A" } else if (score >= 70) { "B" } else if (score >= 60) { "C" } else { "D" } println("点数:${score}") println("結果:${rank}") } |
出力結果
点数:55
結果:D
点数:66
結果:C
点数:76
結果:B
点数:85
結果:A
点数:100
結果:S
変数にifを使用することでifで条件処理を行った値を返すことができます。
そのため、rank変数は引数であるscoreの値によってS、A、B、C、Dのどれかが返されています。
whenで多数の条件分岐を行う
条件分岐を行う構文はifだけでなく、whenを使用することでも条件分岐の処理を行うことができます。
whenとは多岐の条件処理を行う際に使用する構文で、ifよりも簡単にわかりやすく記述することができます。
ifとウェンの処理の流れをイメージで表すと以下のようになります。
⚫︎ if:
適した部屋があるまでどんどんドアを開けていくイメージ
⚫︎ when:
一つの部屋にたくさんのドアがあって一番適したドアを開けるイメージ
イメージだけではよく分からないかと思いますので、同じ処理でどのように変わるのか実際に確認してみましょう。
例えば、あ行の文字を出力するプログラムでif文で書くと以下のようになります。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
fun main() { val str = "う" if (str == "あ") { println("「あ」です。") } else if (str == "い") { println("「い」です。") } else if (str == "う") { println("「う」です。") } else if (str == "え") { println("「え」です。") } else if (str == "お") { println("「お」です。") } } |
出力結果
「う」です。
ifはtrueかfalseの条件処理になりますので、多岐の条件処理を行う場合はelse ifを使用しなければなりません。
しかし、whenを使用すると以下のようになります。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
fun main() { val str = "う" when (str) { "あ" -> { println("「あ」です。") } "い" -> { println("「い」です。") } "う" -> { println("「う」です。") } "え" -> { println("「え」です。") } "お" -> { println("「お」です。") } } } |
出力結果
「う」です。
ifに比べて式も少ないので、whenによって多岐の条件処理をわかりやすいコードで書くことができます。
このように「はい」、「いいえ」で処理することができない条件分岐の場合はifよりwhenを使用していきましょう。
もし、whenについてもっと詳しく知りたい場合はこちらをご参考ください。
今回のポイント
ifで条件分岐の処理を行う
Kotlinで条件分岐の処理を行う場合はifを使用する。
⚫︎ ifとは条件分岐を行う場合に使用する文法である
⚫︎ ifのみを使用する場合、式がtrueだとifの括弧内の処理が実行され、falseだと処理をスルーする
⚫︎ if elseを使用する場合、式がtrueだとifの括弧内の処理が実行され、falseだとelseの括弧内の処理が実行される
⚫︎ else ifを使用する場合、式がtrueだとifの括弧内の処理が実行され、falseだとesle ifの条件式が判断され、else ifの条件式がtrueだと、else ifの括弧内の処理が実行され、falseだと、elseの括弧内の処理が実行される
⚫︎ 変数にifを使用すると、条件処理を行った値を返すことができる
(条件によって値を変えることが可能)
⚫︎ 多数の条件分岐を行う際にはwhenを使用する
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。