Genta Hirauchi

公開日:2020/01/27
更新日:2020/03/22

【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です。
Point
  • 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を実装しないとビルドエラーとなりますので、必ず実装するようにしましょう。

Point
  • 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未満です。
Point
  • 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についての詳しい解説は、以下の記事にまとめておりますので、興味がある方は、そちらもご覧ください。

【Kotlin基礎】Kotlinでwhen式による条件分岐を実装する方法

本記事では、Kotlinでwhen式による条件分岐の方法をサンプルコードを交えてわかりやすく解説しております。サンプルコードには、JavaのSwitch文で実装した場合のコードも記載しておりますので、Java経験者の方は、よりわかりやすい記事になっているかと思います。

まとめ

  • if(条件式) else で条件分岐を実装できる
  • 処理が複数行になる場合は、{ }で囲う
  • else ifを使用することで、多岐に亘る分岐が実装できる
  • ifは式なので、結果を返すことができる
  • 結果を返す場合は、elseの実装が必須
  • Kotlinに三項演算子はないが、「結果 = if(条件式) 式A else 式B」で代用できる