对于在scala中具有多个非嵌套计数器的循环

时间:2017-03-19 01:59:10

标签: java scala

我在java中有这段代码片段

int[] arrA = ...;
int[] arrB = ...;
int n = ...;
boolean isPermuting = true;
for(int i = 0, j = arrB.length - 1; i < n; i++, j--) {
   if(arrA[i] + arrB[j] < k) {
      isPermuting = false;
      break;
   }
}

我知道有一种方法可以在scala中将多个计数器放在同一个for循环中,但最终会嵌套。例如:

for(i <- 1 to 10 ; j <- 10 to 20) // in scala

相同
for(int i = 1; i <= 10 ; i ++){
   for(int j = 10; j <= 20; j++){ // in java

但我不知道如何为非嵌套计数器执行此操作

1 个答案:

答案 0 :(得分:0)

我不知道在scala内联中是否有办法处理for循环,但你可以使用while循环并稍微更改组织。

var n = ...
var k = ...
val arrA : Array[Int] = ...
val arrB : Array[Int] = ...
var isPermuting: Boolean = true
var i: Int = 0
var j: Int = arrB.length - 1
breakable { 
   while (i < n)
     if (arrA(i) + arrB(j) < k)
        isPermuting = false
        break

     i += 1
     j -= 1
  isPermuting
}

编辑:这可能不是最干净的方法,但来自java很容易理解。我希望它有所帮助