KotlinDive

プログラミング言語 Kotlin についての入門ブログです。

繰り返し(for、while)

for

kotlinでのforはC#のforeachのようにコレクションの要素に順番にアクセスできます。
もちろん、C言語などでよくあるN回繰り返すというような処理も可能です。 そのような場合にはレンジを利用します。


fun main(args: Array) {
    val fruits = listOf("apple", "banana", "orange")

    // コレクションの要素を順番に取り出す
    for (item in fruits) {
        println(item)
    }

    // インデックスを取得して要素にアクセスすることもできる
    for (i in fruits.indices) {
        println(fruits[i])
    }

    // 要素とインデックスを同時に取り出すこともできます
    for ((index, item) in fruits.withIndex()) {
        println("${index}: item")
    }

    // レンジをりようし利用して指定回数繰り返す
    val num = 10
    var sum = 0
    for (i in 0 until num) {
        sum += i
        println("sum = ${sum}")
    }
}

apple
banana
orange
apple
banana
orange
0: item
1: item
2: item
sum = 0
sum = 1
sum = 3
sum = 6
sum = 10
sum = 15
sum = 21
sum = 28
sum = 36
sum = 45

while

while、do...whileループはJavaなどと同様に使うことができます。
do...whileでは、doブロック内で宣言した変数は、 whileの条件判定部のスコープになります。


val data = mutableListOf(1, 2, 3, 4)

fun main(args: Array) {
    var num = 1

    while (num < 100) {
        num += num;
        println(num)
    }

    do {
        val num = fetchData()
        println(num)
    } while (num != null) // ここでもnumを参照することができます
}

fun fetchData(): Int? =
    if (data.isEmpty()) {
        null
    } else {
        val ret = data[0]
        data.removeAt(0)

        ret
    }

2
4
8
16
32
64
128
1
2
3
4
null