holgerbrandl
01/15/2021, 8:51 AMelse
after a for loop it is executed when the loop terminates through exhaustion of the iterable but not when the loop is terminated by a break
statement. Here is the yet non-functional example from the python docs ported to kotlin
for(n in (2..10)){
for(x in (2.. n)){
if(n.rem(x)==0){
println("$n equals $x * ${n/x} ")
break
}
}
//todo else{ ???
// loop fell through without finding a factor
println("$ is a prime number")
}
diesieben07
01/15/2021, 9:03 AMholgerbrandl
01/15/2021, 9:05 AMacoconut
01/15/2021, 9:13 AMNir
01/15/2021, 3:14 PMrun
block and return instead of breakNir
01/15/2021, 3:16 PMrun {
for (x in (2..n) {
if (n % x == 0) {
println(...)
return@run
}
}
...
}
holgerbrandl
01/15/2021, 3:16 PMNir
01/15/2021, 3:17 PMNir
01/15/2021, 3:17 PMNir
01/15/2021, 3:17 PMNir
01/15/2021, 3:18 PMNir
01/15/2021, 3:18 PMNir
01/15/2021, 3:19 PMholgerbrandl
01/15/2021, 3:19 PMNir
01/15/2021, 3:19 PMfun main() {
val iterator = (1..5).iterator()
for(x in iterator){
if(x == 5){
println("x is 5")
break
}
}
if (!iterator.hasNext()) {
println("x was never 5")
}
}
Nir
01/15/2021, 3:19 PMNir
01/15/2021, 3:19 PMholgerbrandl
01/15/2021, 3:20 PMNir
01/15/2021, 3:20 PMdiesieben07
01/15/2021, 3:23 PMdiesieben07
01/15/2021, 3:23 PMNir
01/15/2021, 3:24 PM