java - 具有相同性能的内循环(易碎)替代方案

标签 java scala performance loops break

它在 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
    }
  }

只需添加会中断 while 的附加条件。 但这不是 FP 解决方案,你应该真正使用递归。

关于java - 具有相同性能的内循环(易碎)替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60936903/

相关文章:

java - Comparable 使用未经检查或不安全的操作

java - 从 Java ArrayList 中得到意想不到的结果

java - 如何使用Java将Unicode符号U+2610和U+2612打印到Windows控制台?

java - IntelliJ IDEA Gradle + Groovy

scala - scala 函数的序列化

algorithm - 计算比给定距离更近的点数

scala - 如何在 Spark SQL 中合并两行?

performance - Cassandra 性能: split CF or not?

在加载 200mb 的新图像()后,Javascript 在 Safari/iPad2 中运行缓慢。为什么会这样?

mysql - 在 vb.net 中使用 mysql 填充 ListView 的速度