Kotlin for文 処理を繰り返す(break/continue)

説明 for文とは
サンプル for文のサンプル
配列の値を取得
break ループを抜ける(break)
break 2重ループでbreakを使用
  二重ループを抜ける(ラベル)
continue ループの先頭に戻る(continue)
continue 2重ループでcontinueを使用

for文とは

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

 

for文のサンプル

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

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

 

配列の値を取得

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文のみ抜けます。

 

二重ループを抜ける(ラベル)

fun main() {
    label1@ for (i in 0..9) {
        for (j in 0..9) {
            if (j == 3) {
                break@label1
            }
            println(j) //0,1,2が出力される
        }
        println(i) // 出力なし
    }
    println("終了") //出力される
}

2,3行目にforが2つある2重ループです。label1はラベルです。
5行目のbreakとラベルで外側のfor文を抜けます。

 

ループの先頭に戻る(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行目に戻ります。

関連の記事

Kotlin if文(式)のサンプル

△上に戻る