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

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

目次

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

for文

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

for文のサンプル

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

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

for文で配列の値を取得する

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

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

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

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

  • for文でbreakを使用するとループ処理から抜けます。(そのブロックから抜けます)
  • 「{」(波括弧) から「}」までをブロックといいます。
fun main() {
    for (i in 0..2) {
        if (i == 1) {
            break
        }
        println(i) // 0が出力される
    }
}

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

2重ループ(入れ子)のときに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が出力される
    }
}

2,3行目にfor文があり2重ループ(入れ子)になっています。
5行目の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") // 出力なし
    }
}

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

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

  • for文でcontinueを使用すると、ループ処理の先頭に戻ります。(ブロックの先頭位置に戻ります)
  • 「{」(波括弧) から「}」までをブロックといいます。
fun main() {
    for (i in 0..2) {
        if (i == 1) {
            continue
        }
        println(i) // 0 2が出力される
    }
}

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

2重ループ(入れ子)のときに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が出力される
    }
}

2,3行目にfor文があり2重ループ(入れ子)になっています。
5行目のcontinueは、内側のfor文の先頭の3行目に戻ります。

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") // 出力なし
    }
}

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

関連の記事

Kotlin if文(式)のサンプル

△上に戻る