8-5. break, continue, return
概要
Kotlin には以下の 3つのジャンプ文があります。
- break
- continue
- return
ループや関数の実行を中断したり、 値を返したりするために使用されます。
break 文
break 文は、ループ ( for, while, do-while ) を即座に終了させます。ループの条件が満たされていなくても、 break 文が実行されるとループは終了します。
ほとんどの場合、if-else の条件判定と一緒に使われる形になります。
break の書式
for ループで使う場合
for (繰り返し範囲) {
if(条件式1){
break
}
}
while ループで使う場合
while (条件式) {
if(条件式1){
break
}
}
do-while ループで使う場合
do {
if(条件式1){
break
}
}while(条件式)
上記では、条件式1が true の場合にそのループを抜けて、ループの次の処理に進みます。
また、ラベル付きの break も可能です。
Kotlin では、ネストされたループや when 式の中で break 文を使用する場合、どのループや式を終了させるかを明示的に指定するためにラベルを使用することができます。 これを ラベル付き break と呼びます。
「ラベル名@」でラベルを定義します。「break@ラベル名」でラベルへのジャンプが可能です。
例)
outerLoop@ for (i in 1..3) {
for (j in 1..3) {
if (i == 2 && j == 2) {
break@outerLoop // 外側のループを終了
}
println("i: $i, j: $j")
}
}
continue 分
continue は、現在の反復をスキップして、ループの次の反復に進みます。
ループ自体を抜けるのではなく、continue 以降の処理をスキップし、次のループ処理に入る形です。
continue 書式
for ループ、while ループ、do-while ループ それぞれで使う場合
// for ループで使う場合
for (繰返し範囲) {
if(条件式1){
continue
}
}
// while ループで使う場合
while (条件式) {
if(条件式1){
continue
}
}
// do-while ループで使う場合
do {
if(条件式1){
continue
}
}while(条件式)
break と同様に continue@ラベル名 で、ラベルへのジャンプも可能です。
return 分
return 文は、関数の実行を終了し、呼び出し元に値を返します。 値を返さない関数 (戻り値の型が Unit の関数) でも、return 文を使用して関数を早期に終了させることができます。
(関数のセクションでも改めて記載します。)
値を返す例
fun add(a: Int, b: Int): Int { return a + b }
値を返さない例
fun greet(name: String) { println("Hello, $name!") if (name == "World") { return // 関数を終了 } println("Nice to meet you!") // name が "World" の場合は出力されない } fun main (){ greet ("World") greet ("Nancy") // Nice to meet you! は表示されない }
出力
Hello, World!
Hello, Nancy!
Nice to meet you!
Kotlin Playground で実行