在这个循环中:
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中减去。
答案 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: