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