2016-10-11 4 views
-2

私は少しのプログラムを書いていますが、私のループが正しく動作していない理由はわかりません。while条件が成立しない場合

while ((!ss.legal(myNumbers, colRand, rowRand, numRand)) || (triedNumbers.size() != 9)) { 
       System.out.println(triedNumbers.size()); 
//    if(triedNumbers.size()==9) break; 
       numRand = getRandomNumber(1,9); 
       if (!triedNumbers.contains(Integer.valueOf(numRand))) { 
        triedNumbers.add(Integer.valueOf(numRand)); 
       } 

      } 

事は第2の条件です。私のsyso-commandは、サイズはすでに9であると言っていますが、ループは終了していませんか?

乱数が有効な場合、法的な方法はtrueを返します。ループは終了するはずです。マップのサイズが9になると、1から9の数字だけをチェックするのでループも終了する必要があります。

+1

多分、||の代わりに&&を使うべきです。 –

+1

あなたが提供したコードには文脈がないので、何が起こっているのか本当に分かりません。 – px06

+0

サイズが9の場合、他の条件はtrueを返す必要があります。 – Kidiskidvogingogin

答えて

3

||(または)を&&(および)に置き換えます。たとえサイズがすでに9であっても、ループは最初の条件が真である限り継続します。

関連する問題