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

th要素は、中断を引き起こすiよりも大きい場合がありますが、より小さい場合があり、から減算したいのですが、ループを完全に中断せずに、上から反復を開始せずに、ループをスキップして次に進むにはどうすればよいですか?xi+1xxi+1arr[i]arr[i+1]

私の出力の例は、ループが3未満であるため、ループが2で終了する場合ですが、それでも5から減算したいと思いますarr2=(0,0,0,2,0,0,5)x=3

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 に答える