Kotlin - for 繰り返し文、配列/リスト巡回

for文の基本的な使い方と、リスト、配列などの要素を巡回する方法を紹介します。

1. for文で特定の回数を繰り返す

以下のように整数範囲を指定して特定の動作を繰り返すことができます。

  • 1..5: 1から5まで繰り返す
  • 5 downTo 1: 5から1まで繰り返す
fun main() {

    for (i in 1..5) {
        print("$i ")
    }

    println()
    for (i in 5 downTo 1) {
        print("$i ")
    }
}

Output:

1 2 3 4 5
5 4 3 2 1

1.1 ステップで特定の回数を繰り返す

step を使うと、index は step だけ増減し、指定した範囲内で繰り返します。

たとえば、以下の例では

  • 1..10 step 2は1、3、5...のように2ずつ増加しながら10に達するまで繰り返します。
  • 10 downTo 1 step 2は10、8、6...のように2ずつ減少しながら1に達するまで繰り返します。
fun main() {

    for (i in 1..10 step 2) {
        print("$i ")
    }

    println()
    for (i in 10 downTo 1 step 2) {
        print("$i ")
    }
}

Output:

1 3 5 7 9
10 8 6 4 2

2. 配列のすべての要素の巡回

forステートメントで配列のすべての要素を巡回する最も簡単な方法は、以下のように inキーワードを使用する方法です。

以下の例は、配列のすべての要素を順次巡回します。

fun main() {

    val arr = arrayOf("a", "b", "c", "d", "e")

    for (value in arr) {
        print("$value ")
    }
}

Output:

a b c d e

2.1 indexによる配列要素へのアクセス

もし index で巡回したいときは in Array.indices を使うだけです。 indicesは配列のインデックスを持つIntRangeを返します。

次の例では、配列のインデックス範囲をforステートメントで巡回し、インデックスとして配列の要素値にアクセスします。

fun main() {

    val arr = arrayOf("a", "b", "c", "d", "e")

    for (i in arr.indices) {
        print("${arr[i]} ")
    }
}

Output:

a b c d e

2.2 配列のindexとvalueアプローチ

for文で配列のindexとvalueに直接アクセスしたいときは、 Array.withIndex() を使うことができます。

以下のようにindexとvalueに直接アクセスできます。

fun main() {

    val arr = arrayOf("a", "b", "c", "d", "e")

    for ((i, value) in arr.withIndex()) {
        println("index: $i, value: $value ")
    }
}

Output:

index: 0, value: a
index: 1, value: b
index: 2, value: c
index: 3, value: d
index: 4, value: e

3. リストのすべての要素の巡回

inキーワードを使用して、以下のようにforステートメントでリストのすべての要素を巡回できます。

fun main() {

    val list = listOf("a", "b", "c", "d", "e")

    for (value in list) {
        print("$value ")
    }
}

Output:

a b c d e

3.1 indexによる配列要素へのアクセス

indicesはリストのindexのIntRangeを返します。

以下のようにindexで巡回しながらリストにアクセスできます。

fun main() {

    val list = listOf("a", "b", "c", "d", "e")

    for (i in list.indices) {
        print("${list[i]} ")
    }
}

Output:

a b c d e

3.2 リストのindexとvalueアプローチ

withIndex() を使って for 文から index と value に直接アクセスできます。

fun main() {

    val list = listOf("a", "b", "c", "d", "e")

    for ((i, value) in list.withIndex()) {
        println("index: $i, value: $value ")
    }
}

Output:

index: 0, value: a
index: 1, value: b
index: 2, value: c
index: 3, value: d
index: 4, value: e
codechachaCopyright ©2019 codechacha