Kotlin:当条件为真时重复 n 次
Kotlin: repeat n time while condition is true
我需要重复一段代码最多 n 次,但一旦条件为假就终止循环,如下所示:
val runs = 100
var ctr = 0
var condition = true
while (ctr++ < runs && condition) {
//stuff and updates
}
这个逻辑是否可以说得更地道些,也许用 repeat?
val runs = 100
var condition = true
for(ctr in (0..runs)){
if(condition){
//stuff and updates
}
}
您可以嵌套 lambda 和 non-locally return to the outer one - 我不会说这很漂亮,但它是一个选项:
run loop@{
repeat(100) {
if(!condition) return@loop
// stuff and updates
}
}
这是我认为惯用的方法,懒惰地生成一个序列,限制为 100,在第一个停止 condition==true
然后如果不为空则做一些事情(即 condition==true
)
generateSequence {
// do stuff per iteration
Unit // or whatever value per iteration
}.take(100).firstOrNull { condition }?.let {
// on condition
}
我需要重复一段代码最多 n 次,但一旦条件为假就终止循环,如下所示:
val runs = 100
var ctr = 0
var condition = true
while (ctr++ < runs && condition) {
//stuff and updates
}
这个逻辑是否可以说得更地道些,也许用 repeat?
val runs = 100
var condition = true
for(ctr in (0..runs)){
if(condition){
//stuff and updates
}
}
您可以嵌套 lambda 和 non-locally return to the outer one - 我不会说这很漂亮,但它是一个选项:
run loop@{
repeat(100) {
if(!condition) return@loop
// stuff and updates
}
}
这是我认为惯用的方法,懒惰地生成一个序列,限制为 100,在第一个停止 condition==true
然后如果不为空则做一些事情(即 condition==true
)
generateSequence {
// do stuff per iteration
Unit // or whatever value per iteration
}.take(100).firstOrNull { condition }?.let {
// on condition
}