※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

8-3. for ループ

2023年7月29日

概要

同じような処理を繰り返し実行するしたい場合に、ループ処理を使うと便利です。
for ループでは、反復範囲を記載し、それが満たされる限りループ処理を行います。

書式

for というキーワードに続けて 丸括弧 ( ) で要素名 と反復範囲の条件文を記載します。

for (要素名 in 反復範囲) {
	ループしたい文
}

ここで 反復範囲として指定できるのは以下の Iterable なオブジェクトです。

  • 範囲型オブジェクト
  • 配列型オブジェクト
  • コレクションオブジェクト (リスト、セット、マップ)

使用例

範囲を使った反復処理

.. 演算子や until 関数で作成した範囲オブジェクトを使って、 数値の範囲を反復処理できます。

fun main (){
    println("(i in 1..5) での反復")
    for (i in 1..5) {
        println(i)
    }
    println("(i in 1 until 5) での反復")
    for (i in 1 until 5) { // 5 は含まれない
        println(i)
    }
}

出力

(i in 1..5) での反復
1
2
3
4
5
(i in 1 until 5) での反復
1
2
3
4

Kotlin Playground で実行

step を使った反復処理

step 関数を使用して、反復処理の間隔を指定できます。

fun main (){
    for (i in 2..10 step 2) {
        println(i)
    }
}

出力

2
4
6
8
10

Kotlin Playground で実行

downTo を使った反復処理

downTo 関数を使用して、数値を降順に反復処理できます

fun main (){
    for (i in 5 downTo 1) {
        println(i)
    }
}

出力

5
4
3
2
1

Kotlin Playground で実行

インデックスを使った反復処理

indices プロパティや withIndex() 関数を使用して、インデックスと共に要素にアクセスできます。

fun main (){
    var numbers = IntArray(5)

    println("indices プロパティを使っての反復")
    for (index in numbers.indices) {
        println("Index: $index, Element: ${numbers[index]}")
    }
    println("withIndex() 関数を使っての反復")
    for ((index, number) in numbers.withIndex()) {
        println("Index: $index, Element: $number")
    }
}

出力

indices プロパティを使っての反復
Index: 0, Element: 0
Index: 1, Element: 0
Index: 2, Element: 0
Index: 3, Element: 0
Index: 4, Element: 0
withIndex() 関数を使っての反復
Index: 0, Element: 0
Index: 1, Element: 0
Index: 2, Element: 0
Index: 3, Element: 0
Index: 4, Element: 0

Kotlin Playground で実行

break と continue

break 文は、ループを途中で終了させます。continue 文は、現在の反復をスキップして次の反復に進みます。

以下では i が 3 のときは、ループ本体の後続処理をスキップして次のループに進みます。
i が 5 のときは そこでループ処理を終了させます。( i =6 でのループ本体の処理は行われません。)

fun main (){
    for (i in 1..6) {
        if (i == 3) {
            continue
        }
        if (i == 5) {
            break
        }
        println(i)
    }
}

出力

1
2
4

Kotlin Playground で実行

break, continue については以下にも記載しています。