我需要估计循环内数据的某些部分,如果第一个不满足条件,则需要跳过下一部分:
val padding = 25
val threshold = 0.1
for (y in 0 until yArr.size) {
for (x in 0 until xArr.size) {
val xVal = xArr[x]
val yVal = yArr[y]
val subMat = getSubmatrix(yVal - padding, yVal + padding,
xVal - padding, xVal + padding)
var out = processSubMatrix(subMat)
if (x%2 == 1) {
// do some stuff with array
} else {
if(out.max() < threshold) {
x+=2 // cannot do that because x is immutable
continue
} else {
// do some stuff with array
}
}
}
}
在Java中,我可以通过简单的构造来做到这一点:
for(int x = 0; x < xArr.size; x++) {
if(someRunTimeCondition) {
x+=2;
continue;
} else { ... }
}
因此,我不能无视跳过Range初始化步骤中的某些迭代(在进入循环之前)。有人知道怎么做吗?
答案 0 :(得分:1)
这可能是一个简单的解决方案,但是您可以始终使用while
循环并自己进行递增。
var x = 0
while (x < xArr.size) {
...
x++
}