-3

ループの途中でブール式がfalseになります。どのようなループを使用する必要がありますか?私はループチュートリアルを読み続けていますが、それぞれがwhileループではこれを実行できないと述べています。forループとifステートメントを組み合わせてみましたが、どちらも機能しません。簡単な質問でごめんなさい。

    }
     for(int k = 0;k < collb.length; k++){
        //what was used after first calculation
           grosssum += col4[k]*mix[k];
             one=sum1 - grosssum;


    }
   for(int n = 0;n < collb.length; n++)
    if(one < -need[n] && col4[n] >0){
   col5[n]=col4[n]-inc[n] + arrayspecificpounds[n];
    net += col5[n]*mix[n];
    sum = sum1-net;
 }   //net is the sum of what was used * mix
     //sum1 is what we started with
   else{
     if(one > need[n] && col4[n] >0){
    col5[n]=col4[n]-inc[n] + arrayspecificpounds[n];
    net += col5[n]*mix[n];
    sum = sum1-net;

    }
    else col5[n] = col4[n] +  arrayspecificpounds[n];
    sum = sum1 - net;
   }
   for(int p = 0;p< collb.length; p++){
       if(sum < -need[p] && col5[p] >0){
           col6[p]=col5[p]-inc[p] + arrayspecificpounds[p];
       net2 += col6[p]*mix[p];
       sum2 = sum1 - net2;
       }
     else{
           if(sum > need[p] && col5[p] >0){
               col6[p]=col5[p]+inc[p] + arrayspecificpounds[p];
      net2 += col6[p]*mix[p];
    sum2 = sum1 - net2;
           }
    else col6[p] = col5[p] + arrayspecificpounds[p];
    net2 += col6[p]*mix[p];
    sum2 = sum1 - net2;
   }
    }


        for(int q =0;q< collb.length; q++){
           if(sum2 < -need[q] && col6[q] >0){
               colr[q]=col6[q] - inc[q] +arrayspecificpounds[q];
           }
             else{
               if(sum2 > need[q] && col6[q]>0){
                   colr[q]=col6[q] +inc[q] + arrayspecificpounds[q];
               }
       else colr[q] = col6[q] + arrayspecificpounds[q];
           }    

この例では、配列col6がインクリメントされると、sum2の値が変化しますが、配列の途中で不等式が変化します。sum2が変更されたら停止するための休憩をどのように実装しますか?

4

2 に答える 2

3

条件がfalseの場合、「ブレーク」を使用してループを終了できます

于 2012-05-07T00:38:15.247 に答える
3

監視しているブール値がその値をfalseからtrueに変更したときに、whileループを停止する方法の簡単な例を次に示します。

boolean done = false;
int count = 0;

// while not done, continue looping
while(!done) {
    // do stuff
    count++;
    if(count > 7) {
        done = true;
    }
}

同じ手法を実際にforループ内でも使用できます。

boolean done = false;
for(int i = 0; i < 1000 && !done; i++) {
    // do stuff

    if(i > 7) {
        done = true;
    }
}

これは少し異例ですが、forループの2番目のパラメーターを使用して、inti値の実際の値に関連する場合と関連しない場合があるブール条件を監視する方法を示しています。

于 2012-05-07T00:41:24.013 に答える