continueWhileCondition

continueWhileCondition

在Java中的外观:

public void perform() {
    outer: while (someCondition) {
        while(someCollection.nonEmpty() && anotherCondition) {
            if (otherCondition)
                break outer;
            else doSomething();
        }

       try {
          doSomethingWithException();
       } catch (Exception e) {
          break; // breaks outer loop
       }

       doSomethingAnother();
    }
}


谁能在Scala中建议一个替代方案?

我已经知道util.control.Breaks,但是还有其他选择吗?

最佳答案

您可以将代码重写为以下形式:

  var continueWhileCondition = true
  while (someCondition && continueWhileCondition) {
    while (someOtherCondition) {
      if (someThirdCondition) {
        continueWhileCondition = false
      }
    }
    if (continueWhileCondition) {
      //here do try/catch
    }
  }


只需添加会在一段时间内中断的其他条件。
但这不是FP解决方案,您应该真正使用递归。

07-24 14:00