Kotlin在for循环中跳过下一次迭代

Kotlin在for循环中跳过下一次迭代,kotlin,Kotlin,我需要估计循环中的某些数据部分,如果第一部分不满足条件,我需要跳过下一部分: 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

我需要估计循环中的某些数据部分,如果第一部分不满足条件,我需要跳过下一部分:

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
             }
        }
    }
}
val padding=25
val阈值=0.1
用于(y为0,直到码大小){
用于(0中的x,直到xArr.size){
val xVal=xArr[x]
val-yVal=yArr[y]
val subMat=getSubmatrix(yVal-padding,yVal+padding,
xVal-填充,xVal+填充)
var out=processSubMatrix(subMat)
如果(x%2==1){
//用数组做一些事情
}否则{
if(out.max()<阈值){
x+=2//不能这样做,因为x是不可变的
持续
}否则{
//用数组做一些事情
}
}
}
}
在java中,我可以通过简单的构造做到这一点:

for(int x = 0; x < xArr.size; x++) {
    if(someRunTimeCondition) {
        x+=2;
        continue;
    } else { ... }
}
for(int x=0;x

所以我不能决定跳过范围初始化步骤中的一些迭代(在我进入循环之前)。有人知道怎么做吗?

这可能是一个简单的解决方案,但您始终可以使用
while
循环并自行递增

var x = 0
while (x < xArr.size) {
    ...
    x++
}
var x=0
而(x
所以在“for”循环中没有办法做到这一点?我没有这么说。只是这是实现你目标的一种方式。我不知道这是不是可能的。