Kotlin:在条件为真时重复 n 次

Posted

技术标签:

【中文标题】Kotlin:在条件为真时重复 n 次【英文标题】:Kotlin: repeat n time while condition is true 【发布时间】:2020-10-16 11:20:14 【问题描述】:

我需要重复一段代码最多 n 次,但一旦条件为假就终止循环,如下所示:

val runs = 100
var ctr = 0
var condition = true

while (ctr++ < runs && condition) 
    //stuff and updates

这个逻辑可以用更惯用的方式表述吗,也许用repeat

【问题讨论】:

我认为这是最干净的方法。 repeat 依赖于不支持 break 的 lambdas。 【参考方案1】:

您可以嵌套 lambda 和 non-locally return to the outer one - 我不会说这很漂亮,但这是一个选项:

run loop@
    repeat(100) 
        if(!condition) return@loop
        // stuff and updates
    

【讨论】:

是的,我不会使用它,但很高兴知道。【参考方案2】:
val runs = 100
var condition = true


for(ctr in (0..runs))
    if(condition)
        //stuff and updates
    

【讨论】:

循环仍然会通过每次迭代来检查条件是否为假。如果运行次数很大,那会浪费很多精力,并且条件很快就会变为错误。

以上是关于Kotlin:在条件为真时重复 n 次的主要内容,如果未能解决你的问题,请参考以下文章

仅在条件为真时添加指令 [重复]

使用动态名称记录条件为真时的变量值

Pine 脚本 - 当多个条件为真时输入位置

MySQL 仅在条件为真时更新主字段

在 kotlin 循环中继续 n 次

Oracle:两个条件都为真时的条件非空约束