-1

在这个循环中:

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;
        }
    }
}

ith 元素可能大于x导致中断但i+1可能小于x并且我想从中减去x,我i+1怎样才能使循环跳过arr[i]并继续前进arr[i+1]而不完全破坏循环并且不从顶部开始迭代?

我的输出的一个例子是我的循环在 2arr2=(0,0,0,2,0,0,5)x=3终止,因为它小于 3,但我仍然想从 5 中减去。

4

1 回答 1

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:
于 2012-05-08T23:15:04.177 回答