首页 > 解决方案 > 如果在 Eclipse rcptt 中满足条件,则退出循环

问题描述

如果在 Eclipse rcptt 中满足条件,我想退出循环。

我正在使用以下代码:

proc "wait-until" [val iconName] {
    loop [val count 1] [val n 5] {
        if [$count | lt $n] {

            try{

                let [val text [get-button "Configure" | get-property "getToolTipText()" -raw]] {
                    if [$text | contains $iconName] {

                        recur [$count | plus 100] [$n]
                    }
                }
            } -catch {
                show-alert "inside catch"
            }

            recur [$count | plus 1] [$n]
        } -else {
        }
    }
}

但如果尝试条件也满足,它会继续。

我在哪里做错了?

谢谢

标签: eclipseeclipse-rcptt

解决方案


RCPTT 中的循环很奇怪,因为它们不是简单地迭代,而是像递归那样“深入”。

关键字“recur”旨在表达这一点。

在您的情况下,如果 try{} 在第 (n) 次成功运行,它仍然必须“爬出”并在 'recur' 指令 (n-1) 次之后执行代码部分。

如果可能,您应该重新构建代码以将“recur”作为循环中的最后一条指令。


推荐阅读