Kotlin にも Java と同じようにループ制御を行うための構文が用意されています。
それは while 文と for 文です。
while ループ
while 文
while 文は、指定した条件式が true である限りループ処理を続ける構文です。
フォーマット
while (条件式) { 処理1 処理2 ... }
使い方は Java の while 文と同じですね。
1 2 3 4 5 6 7 |
fun main() { var cnt = 3 while (cnt-- > 0) { println("kotlin") } } |
実行結果
kotlin
kotlin
kotlin
do-while 文
Kotlin も do-while 文をサポートしています。条件判定の前に do ブロック内の処理が実行されます。
フォーマット
do { 処理1 処理2 ... } while (条件式)
Kotlin の do-while 文は、変数のスコープが Java と異なります。
1 2 3 4 5 6 7 |
fun main() { do { println("kotlin") val next = Math.random() < 0.5 } while (next) } |
事項結果
kotlin
kotlin
kotlin
※乱数を条件に使用しているため、実行毎に結果は異なります。
Kotlin では、do ブロック内で定義した変数を while 文の条件式に使うことができます。
for ループ
イテレーター(iterator、反復子)を提供するオブジェクトに対する繰り返しは、
一般的に for 文を使用します。
フォーマット
for (要素名 in イテレータを提供するオブジェクト) { 処理 }
イテレータを提供するオブジェクトは、例えば配列やリストなどです。
1 2 3 4 5 6 7 8 9 10 11 12 |
fun main() { for (x in arrayOf(1, 2, 3)) { println("Array: " + x) } for (name in listOf("Taro", "Hanako")) { println("List: " + name) } for (i in 1..10 step 4) { println("Range: " + i) } } |
実行結果
Array: 1
Array: 2
Array: 3
List: Taro
List: Hanako
Range: 1
Range: 5
Range: 9
ループ制御:break と continue
ループの処理フローを変更できる break と continue が用意されています。
break は、ループを終了させます。
continue は、次のループを開始します。
1 2 3 4 5 6 7 8 9 10 |
fun main() { for (name in listOf("Kotlin", "Java", "for", "while")) { when (name) { "Kotlin" -> continue "for" -> break else -> println(name) } } } |
実行結果
Java