中循环修改java
在此循环中:中循环修改java,java,arrays,if-statement,for-loop,while-loop,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; } } } while(a
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;
}
}
}
while(a<100){
a=a+1;
对于(i=0;iarr[i])中断;
}
}
}
导致中断的i
th元素可能大于x
,但i+1
可能
如果小于x
,我想从I+1
中减去x
,我怎么能让循环跳过arr[I]
,然后转到arr[I+1]
,而不完全中断循环,也不从顶部开始迭代
我的输出的一个例子是
arr2=(0,0,0,2,0,0,5)
其中x=3
,因此我的循环终止于2,因为它小于3,但我仍然想从5中减去。我想你可能有意这样做,但我无法想象你试图实现什么。
试一试纸上的算法
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.
}
}
相当于:
START;
loop:
if (!CONDITION) {
goto endloop;
}
STMT1;
goto step;
STMT2;
step:
STEP;
goto loop;
endloop:
你的意思是,使用continue而不是break?不继续开始循环的新迭代吗?这个循环的原因是什么?在你的计划中,你想完成什么?我已经阅读了两篇教程,其中说“继续”从一开始就开始循环,而不是仅仅跳过一个元素?你确定吗?对节目做些评论会有帮助的。while循环除了循环(100减去a的原始值)次之外什么也不做。for循环通常更好地表达了这一思想。变量z似乎是要从一个或多个arr2[]元素中扣除的数量,这些元素对应的arr[]元素大于或等于当前值x。可能while循环应该检查x是否变为负值,或者可能不是。所提供的代码可能令人困惑地近乎正确,也可能是大错特错;这实际上取决于代码的目标。
START;
loop:
if (!CONDITION) {
goto endloop;
}
STMT1;
goto step;
STMT2;
step:
STEP;
goto loop;
endloop: