Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

【Kotlin入門】④条件分岐・可変長引数


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20210627142712p:plain

おはようございます。Shotaです。

今日の記事では、Kotlin文法における条件分岐について解説します。



制御構文


if

Kotlinにおけるifelseは次のように書きます。

▼プログラム①

fun main() {
    val x = 10
    if (x > 5) {
        print("true")
    } else {
        print("false")
    }
}

▼出力結果

true

プログラム①で、

val x = 10

この一文を、

val x = 4

これに置き換えてみて再度実行すると、次のように出力されます。

false


when

▼プログラム②

fun main() {
    val x = 1
    when (x) {
        1 -> print("x == 1")
        2 -> print("x == 2")
        else -> {
            print("x is neither 1 nor 2")
        }
    }
}

whenは複数の条件分岐によく使われます。()の中に任意の変数あるいは処理を書いて、条件とそれに付随する処理を->で表現します。

▼プログラム②の出力結果

x == 1


while, do while

whileの場合

fun main() {
    var x = 0
    while (x < 4) {
        println("Hello Kotlin")
        ++x
    }
}

do whileの場合

fun main() {
    var x = 0
    do {
        println("Hello Kotlin")
        ++x
    } while (x < 4)
}

▼実行結果(両者とも同じ)

Hello Kotlin
Hello Kotlin
Hello Kotlin
Hello Kotlin

while文で使う条件式は、truefalseで判定できるboolean型で記載しなければなりません。

以降、サンプルコードでは前者の方を使います。(後者はwhileの処理を書き忘れることがあるため)


break

breakを使うことで、処理を中断させることができます。

fun main() {
    var x = 0
    while (x < 4) {
        if (x == 2) break
        println("Hello Kotlin")
        ++x
    }
}

▼実行結果

Hello Kotlin
Hello Kotlin


continue

continueを使うことで、ループ処理をスキップすることができます。

次のサンプルコードでは、変数xが2のときだけcontinueprintlnの処理がスキップされます。そのため、2は出力されません。

fun main() {
    var x = 0
    while (x < 5) {
        x++
        if (x == 2) continue
        println(x)
    }
    println("finish")
}

▼実行結果

1
3
4
5
finish

このように、continueはループ処理をスキップすることができます。


可変長引数

可変長引数とは、引数の数が定まっていない引数のことを指します。型が同じであれば任意の数を引き出すことができます。

引数にはvarargを指定することで、複数の引数を指定できます。

fun vafunc(vararg values:Int):Unit {
    for(value in values) {
        println(value.toString())
    }
}

fun main(args:Array<String>) {
    vafunc(1,2,3)
}

上記にあるUnitとは、「戻り値がない」ことを意味しています。

▼実行結果

1
2
3

可変長引数と普通の引数を混ぜて使うことはできますが、その際は可変長引数を最後に置きましょう。

fun vafunc(arg:String, vararg values:Int):Unit {
    for (value in values) {
        println(value)
    }
    println(arg)
}

fun main() {
    vafunc("kotlin", 1, 2, 3, 4)
}

▼実行結果

1
2
3
4
kotlin


余談

本章で紹介したKotlinプログラムと同じ処理をPythonプログラムで書くと、次のようになります。

def vafunc(arg, *values):
    for value in values:
        print(value)
    print(arg)

vafunc("kotlin", 1, 2, 3, 4)

上述のKotlinプログラムと比較すると、シンプルにコードを書けますね。


まとめ

今回の記事では、Kotlinで条件分岐や可変長引数について解説しました。

今日の記事はこれで終了です。