Kotlin for文のサンプル(break/continue/ラベル)

Kotlinのfor文のサンプルです。処理を繰り返す時に使用します。

目次

for文 for文
break ループ処理を途中で終了する(break)
  入れ子のときにbreakを使用する
  breakでラベルを使用する
continue ループ処理で処理をスキップする(continue)
  入れ子のときにcontinueを使用する
  continueでラベルを使用する

for文

for (変数 in 開始値 .. 終了値){
    実行される処理
}
  • 処理を繰り返す時に使用します。最初にforを書くのでfor文と呼ばれます。
  • 開始値から終了値まで実行されます。
  • 変数は、カウンター変数/ループ変数です。

for文のサンプルです。

fun main() {

    for (i in 0..2) {
        println(i) // 0 1 2が出力される
    }

    val color = arrayOf("赤", "黄", "青") // 配列

    for (i in color.indices) {
        println(color[i]) // 赤 黄 青が出力される
    }
}

3行目のiは開始値から始まります。
1ずつ増えていきます。

7行目は、配列です。
8行目のindicesは、indexの複数形です。配列の長さを返します。
9行目は、変数と添字で配列の値を表示しています。

ループ処理を途中で終了する(break)

  • for文でbreakを使用するとループ処理から抜けます。(そのブロックから抜けます)
  • 「{」(波括弧) から「}」までをブロックといいます。
fun main() {

    for (i in 0..2) {
        if (i == 1) {
            break
        }
        println(i) // 0が出力される
    }
}

5行目のbreakでfor文を抜けます。
7行目は、0のみ出力されます。

入れ子のときにbreakを使用する

for文が入れ子のときのbreakのサンプルです。

fun main() {

    for (i in 0..1) {
        for (j in 0..1) {
            if (j == 0) {
                break
            }
            println("j=$j") //出力なし
        }
        println("i=$i") // i=0 i=1が出力される
    }
}

3,4行目にfor文があり入れ子になっています。
6行目のbreakは、内側のfor文のみ抜けます。

breakでラベルを使用する

for文のbreakでラベルを使用するサンプルです。

fun main() {

    label1@ for (i in 0..1) {
        for (j in 0..1) {
            if (j == 0) {
                break@label1
            }
            println("j=$j") //出力なし
        }
        println("i=$i") // 出力なし
    }
}

3,6行目にラベル「@label1」を追加しています。
6行目のラベルから3行目のラベルに飛びループを抜けるので出力なしになります。

ループ処理で処理をスキップする(continue)

  • for文でcontinueを使用すると、ループ処理の先頭に戻ります。(ブロックの先頭位置に戻ります)
  • 「{」(波括弧) から「}」までをブロックといいます。
fun main() {

    for (i in 0..2) {
        if (i == 1) {
            continue
        }
        println(i) // 0 2が出力される
    }
}

5行目のcontinueでループ処理の先頭の3行目に戻ります。
7行目は、0と2が出力されます。

入れ子のときにcontinueを使用する

for文が入れ子のときのcontinueのサンプルです。

fun main() {

    for (i in 0..1) {
        for (j in 0..1) {
            if (j == 0) {
                continue
            }
            println("j=$j") //j=1 j=1が出力される
        }
        println("i=$i") // i=0 i=1が出力される
    }
}

3,4行目にfor文があり入れ子になっています。
6行目のcontinueは、内側のfor文の先頭の4行目に戻ります。

continueでラベルを使用する

for文のcontinueでラベルを使用するサンプルです。

fun main() {

    label1@ for (i in 0..1) {
        for (j in 0..1) {
            if (j == 0) {
                continue@label1
            }
            println("j=$j") //出力なし
        }
        println("i=$i") // 出力なし
    }
}

3,6行目にラベル@label1を追加しています。
6行目のラベルから3行目のラベルに戻るので出力なしになります。

関連の記事

Kotlin if文(式)のサンプル

△上に戻る