公開日:2020/01/27更新日:2020/08/03
【Kotlin基礎】if elseで条件分岐を実装する方法

- if elseで条件分岐を実装する方法が知りたい。
- 三項演算子を実装する方法が知りたい。
- Javaで実装する場合との違いが知りたい。
- if else以外の条件分岐の方法が知りたい。
本記事は、そんな方々の悩みを解決するべく執筆致しました。
if elseの基本的な使用方法はもちろん、戻り値を返したり、三項演算子的な使い方なども、サンプルコードを交えてわかりやすく解説しております。
また、Javaで実装した場合のコードも記載しておりますので、Java経験者の方は、よりわかりやすい記事になっているかと思います。
目次
if elseで条件分岐を実装する方法
if elseの基本的な使い方
if elseは、「もし○○であれば××をする。そうでなければ□□をする」というような条件分岐を実装する際に使用されます。
if elseは以下のように実装します。
- Kotlin
if(条件式)
// 処理A
else
// 処理B
先ほど言葉で説明した○○の部分が条件式にあたります。
条件式がtrueであれば処理Aを、falseであれば処理Bを実行します。
処理が複数行になる場合は、{ }で囲います。
- Kotlin
if(条件式) {
// 処理A
// 処理A
} else {
// 処理B
// 処理B
}
また、else ifを使うことで、多岐に亘る分岐を実装することができます。
- Kotlin
if(条件式)
// 処理A
else if(条件式)
// 処理B
else if(条件式)
// 処理C
else
// 処理D
では、実装例をみていきましょう。
- Kotlin
- Java
val i = 2
if(i == 0)
println("0です。")
else if(i == 1)
println("1です。")
else if(i == 2)
println("2です。")
else
println("その他です。")
// 2です。
int i = 2;
if(i == 0)
System.out.println("0です。");
else if(i == 1)
System.out.println("1です。");
else if(i == 2)
System.out.println("2です。");
else
System.out.println("その他です。");
// 2です。
- if(条件式) else で条件分岐を実装できる
- 処理が複数行になる場合は、{ }で囲う
- else ifを使用することで、多岐に亘る分岐が実装できる
【公式ドキュメント】 : Control Flow: if, when, for, while – Kotlin Programming Language
if elseで戻り値を返す方法
続いて、if elseで戻り値を返す方法を紹介致します。
Javaでは、if文という言葉を使用しておりますが、Kotlinでは、ifは式です。
ですので、結果を返すことができます。
先ほどのサンプルコードを少し変更し、結果を変数に格納した後、出力してみます。
- Kotlin
- Java
val i = 2
val result = if(i == 0)
"0です。"
else if(i == 1)
"1です。"
else if(i == 2)
"2です。"
else
"その他です。"
println(result)
// 2です。
String result = "";
int i = 2;
if (i == 0)
result = "0です";
else if (i == 1)
result = "1です。";
else if (i == 2)
result = "2です。";
else
result = "その他です。";
System.out.println(result);
// 2です。
直接結果を変数に格納できるのがいいですね。
なお、このように結果を返す場合は、elseを実装しないとビルドエラーとなりますので、必ず実装するようにしましょう。
- Kotlinのifは式なので、結果を返すことができる
- 結果を返す場合は、elseの実装が必須
if elseを三項演算子のように使用する方法
最後に、if elseを三項演算子のように使用する方法を紹介致します。
三項演算子とは、条件式の結果がtrueであれば式A、falseであれば式Bを返すという演算子のことです。
- Java
結果 = 条件式 ? 式A : 式B
三項演算子は、Javaには存在しているのですが、Kotlinにはありません。
ですが、Kotlinのifは結果を返せるので、三項演算子のように使用することができます。
- Kotlin
- Java
val i = 5
val result = if(i < 10) "10未満です。" else "10未満ではありません。"
println(result)
// 10未満です。
int i = 5;
String result = i < 10 ? "10未満です。" : "10未満ではありません。";
System.out.println(result);
// 10未満です。
- Kotlinに三項演算子はない
- 結果 = if(条件式) 式A else 式B で代用できる
when式による条件分岐について
Kotlinで条件分岐を実装する方法として、if elseの他に、whenがあります。
if elseで実装する場合、多岐に亘る分岐はelse ifで実装できると紹介しましたが、whenで実装した方が可読性が上がります。
以下は、else ifでの実装した場合と、whenでの実装した場合の違いです。
- else if
- when
val i = 2
if(i == 0)
println("0です。")
else if(i == 1)
println("1です。")
else if(i == 2)
println("2です。")
else if(i == 3)
println("3です。")
else if(i == 4)
println("4です。")
else
println("その他です。")
// 2です。
val i = 2
when(i) {
0 -> println("0です。")
1 -> println("1です。")
2 -> println("2です。")
3 -> println("3です。")
4 -> println("4です。")
else -> println("その他です。")
}
// 2です。
非常にわかりやすくなりましたね。
whenについての詳しい解説は、以下の記事にまとめておりますので、興味がある方は、そちらもご覧ください。
まとめ
- if(条件式) else で条件分岐を実装できる
- 処理が複数行になる場合は、{ }で囲う
- else ifを使用することで、多岐に亘る分岐が実装できる
- ifは式なので、結果を返すことができる
- 結果を返す場合は、elseの実装が必須
- Kotlinに三項演算子はないが、「結果 = if(条件式) 式A else 式B」で代用できる
関連記事