java - 在 Scala 中实现带条件的嵌套循环

标签 java scala

在 Scala 中实现以下代码的惯用方法是什么?

for (int i = 1; i < 10; i+=2) {
  // i = 1, 3, 5, 7, 9
  bool intercept = false;

  for (int j = 1; j < 10; j+=3) {
    // j = 1, 4, 7
    if (i==j) intercept = true
  }

  if (!intercept) {
    System.out.println("no intercept")
  }
}

最佳答案

您可以使用 Range和 friend :

if (((1 until 10 by 2) intersect (1 until 10 by 3)).isEmpty)
  System.out.println("no intercept")

这不涉及嵌套循环(您在标题中提到),但它是在 Scala 中获得相同结果的更惯用的方法。

编辑:正如 Rex Kerr 指出的那样,上面的版本不会每次都打印消息,但以下版本会:

(1 until 10 by 2) filterNot (1 until 10 by 3 contains _) foreach (
   _ => println("no intercept")
)

关于java - 在 Scala 中实现带条件的嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13162926/

相关文章:

scala - 对象-功能阻抗不匹配

scala - 我可以使用类的类型注释来决定类方法的结果类型吗?

java - final 和非 final int 变量相乘有什么区别?

java - 在 Scala 中创建具有任意类型和映射的三维数组

java - 关闭连接导致流关闭错误

java - 从哪里获取 fragment 中的内容?

scala - 有什么方法可以避免在 Akka 伴随对象中定义 props 方法?

scala - Spark UDF 线程安全

java - 有没有办法告诉 android 强制停止哪个 Activity 进入后台而不将其从 Activity 堆栈中删除?

java - glassfish 报告失败