中循环修改java

时间:2012-05-08 22:57:57

标签: java arrays if-statement for-loop while-loop

在这个循环中:

while(a < 100){
    a=a+1;
    for(i = 0;i < arr.length;i++){
        if(x < arr[i]){
            arr2[i] = arr2[i] - z;
            x = x - z;
            if(x > arr[i]) break;
        }
    }
}

i个元素可能大于x导致中断但i+1可能 小于x并且我想从x中减去i+1,我怎样才能使循环跳过arr[i]并转到arr[i+1]而不会破坏arr2=(0,0,0,2,0,0,5)完全循环而不从顶部开始迭代?

我输出的一个示例是x=3其中{{1}}因此我的循环终止于2,因为它小于3但我仍想从5中减去。

1 个答案:

答案 0 :(得分:0)

我想你可能想要这个,但我无法想象你想要实现的目标。 在纸上尝试算法。

for (int i = 0; i < arr.length; i++){
    if (x < arr[i]) {
        arr2[i] -= z;
        x -= z;
        if (x <= 0) {
            break;
        }
        // Continue with smaller x (assuming z > 0) for rest of arr.
    }
}

在for循环中:

for (START; CONDITION; STEP) {
    STMT1;
    continue;
    STMT2;
 }

相当于:

 START;
 loop:
     if (!CONDITION) {
         goto endloop;
     }
     STMT1;
     goto step;
     STMT2;
 step:
     STEP;
     goto loop;
 endloop: