その他

[Kotlin] ループ処理まとめ for while forEach

この記事は約3分で読めます。

ループ処理

kotlinのループ処理をメモとして簡単にまとめました。

while ループ

条件を設定してその条件にマッチしている間は、ループし続ける
ループから抜け出す処理は必須

    var x = 1
    while (x <= 10) {
        println("$x")
        x++
    }
    println("\n ループ完了")

以下のように室温が20度になったらループを止めたりもできる

var feltTemp = "cold"
var roomTemp = 10

while(feltTemp == "cold") {
  println("室温${roomTemp}度、寒い。")
  roomTemp++
  if (roomTemp >= 20) {
    feltTemp = "comfy"
    println("室温${roomTemp}度、快適です。")
  }
}

do while ループ

whileとの違いは、条件にマッチしていない場合も1度は実行される

    xx = 15
    do {
        // xxは条件にマッチしていないのでループされないが、必ず1度は実行される
        print("$xx")
        xx++
    } while (xx <= 10)
    println("\n ループ完了")

for ループ

1〜10で値をインクリメントしながらループ

    // num <= 10
    for (num in 1..10) {
        print(num)
    }
    // 実行結果:12345678910

until -> 1〜10で値をインクリメントしながらループするが10になるタイミングで処理が止まる
※ for(i in 1.until(10)) {}と記述することも可能

    for (i in 1 until 10) {
        print("$i ")
    }
    // 実行結果:1 2 3 4 5 6 7 8 9

downTo -> 10 ~ 1で値をデクリメントしながらループする
※ for(i in 10.downTo(1)) {}と記述することも可能

    for (i in 10 downTo 1) {
        print("$i ")
    }
    // 実行結果:10 9 8 7 6 5 4 3 2 1

step -> インクリメントまたはデクリメントの増減する数を設定できる
※ for(i in 10.downTo(1).step(3)) {}と記述することも可能

    for (i in 10 downTo 1 step 3) {
        print("$i ")
    }
    // 実行結果:10 7 4 1

forEach

主に配列をループするときに使用

    val array = arrayOf("A", "B", "C")

    // arrayをループしてitemをログに表示
    array.forEach { item ->
        print(item)
    }

    // itを使えば現在のループ対象という意味になる
    array.forEach {
        print(it)
    }

    //上記の実行結果 ABC