ループ処理
kotlinのループ処理をメモとして簡単にまとめました。
while ループ
条件を設定してその条件にマッチしている間は、ループし続ける
ループから抜け出す処理は必須
var x = 1
while (x <= 10) {
println("$x")
x++
}
println("\n ループ完了")
以下のように室温が20度になったらループを止めたりもできる
var feltTemp = "cold"
var roomTemp = 10
while(feltTemp == "cold") {
println("室温${roomTemp}度、寒い。")
roomTemp++
if (roomTemp >= 20) {
feltTemp = "comfy"
println("室温${roomTemp}度、快適です。")
}
}
do while ループ
whileとの違いは、条件にマッチしていない場合も1度は実行される
xx = 15
do {
// xxは条件にマッチしていないのでループされないが、必ず1度は実行される
print("$xx")
xx++
} while (xx <= 10)
println("\n ループ完了")
for ループ
1〜10で値をインクリメントしながらループ
// num <= 10
for (num in 1..10) {
print(num)
}
// 実行結果:12345678910
until -> 1〜10で値をインクリメントしながらループするが10になるタイミングで処理が止まる
※ for(i in 1.until(10)) {}と記述することも可能
for (i in 1 until 10) {
print("$i ")
}
// 実行結果:1 2 3 4 5 6 7 8 9
downTo -> 10 ~ 1で値をデクリメントしながらループする
※ for(i in 10.downTo(1)) {}と記述することも可能
for (i in 10 downTo 1) {
print("$i ")
}
// 実行結果:10 9 8 7 6 5 4 3 2 1
step -> インクリメントまたはデクリメントの増減する数を設定できる
※ for(i in 10.downTo(1).step(3)) {}と記述することも可能
for (i in 10 downTo 1 step 3) {
print("$i ")
}
// 実行結果:10 7 4 1
forEach
主に配列をループするときに使用
val array = arrayOf("A", "B", "C")
// arrayをループしてitemをログに表示
array.forEach { item ->
print(item)
}
// itを使えば現在のループ対象という意味になる
array.forEach {
print(it)
}
//上記の実行結果 ABC