※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

8-1. if/else 式

2023年7月29日

概要

Kotlin の if/else 式は、条件に基づいて異なるコードブロックを実行するための制御フロー構造です。
Kotlin では if/else は文ではなく式であるため、値を返すことができます

書式

if に続けて、丸括弧 ( ) で条件式を囲みます。条件を評価し、結果が true である場合に、直後の文 あるいは波括弧 { } で囲まれたブロック内が実行されます。false の場合は実行されません。

if (条件式) {
	文
}

条件式が true の場合だけでなく、false になった場合にも何らかの処理を実行したい場合もあります。
その場合 else 文を追加した書式があります。

if (条件式) {
	文
}
else {
	文
}

else の後に、さらに if-else を続けて条件分岐を追加することができます。
以下では、文3 が実行されるのは、条件式1と条件式2 がともに false の場合です。

if (条件式1) {
	文1
}
else if (条件式2) {
	文2
}
else {
	文3
}

使用例

基本的な使い方の例

fun main (){
    val number = 10

    if (number % 2 == 0) {
        println("偶数です")
    } else {
        println("奇数です")
    }
}

出力

偶数です

Kotlin Playground で実行

式としての使用例

Kotlin の if/else は式であるため、値を返すことができます。

fun main (){
    val a = 5
    val b = 2
    val max = if (a > b) {
        a
    } else {
        b
    }
    println ("maxの値は $max です。")
}

出力

maxの値は 5 です。

Kotlin Playground で実行

else if の使用例

fun main (){
    val score = 75

    val grade = if (score >= 90) {
        "A"
    } else if (score >= 80) {
        "B"
    } else if (score >= 70) {
        "C"
    } else {
        "D"
    }
    println("成績は $grade です。")
}

出力

成績は C です。

Kotlin Playground で実行

if/else 式をネスト (nested, 入れ子) にした例

if/else 式はネストすることができます。つまり、if または else ブロックの中に別の if/else 式を記述することができます。

fun main (){
    val number1 = 10
    val number2 = 20

    if (number1 > 0) {
        if (number2 > 0) {
            println("number1 と number2 は両方とも正の数です。")
        } else {
            println("number1 は正の数ですが、number2 は正の数ではありません。")
        }
    } else {
        println("number1 は正の数ではありません。")}
}

出力

number1 と number2 は両方とも正の数です。

Kotlin Playground で実行