2017-05-28 4 views
-1

に番号を取得し、私はArrayFieldにファイルから読み取られ、私が使用しようとすると、それは単にこのメソッドは、1個からカウントするカウンタを持っていDoesn'tがArrayField

public static String main() { 
    boolean found= false; 
    int number= 0; 
    while(found == false) { 
     number+=1; 
     if(DataStorage.passwordList.contains(number)) { 
      found= true; 
      break; 
     } 
     else { 
      number+=1; 
      continue; 
     } 
    } 
    String result= Integer.toString(number); 
    return result; 
} 

それをスキップする方法が含まれています.....そしてその数がArrayFieldの中にあるかどうかをテストします。私はコンピュータが見つけなければならない値として10を使用しますが、文字通り無限にカウントを終了します。 Javaへの比較的新しいenter code here

申し訳ありませんイム裁判官をドントください:)

+0

あなたはデバッガを試してみるべきです(Java用の良いIDEの一部でなければなりません)。ヒント:ループ実行ごとに 'number'がどのように変化するか考えてみましょう。 – Paul

答えて

0

チャンスはあなたが見つけようとしている1が照合されることは決してありませんということですので、あなたは、あなたのループ内で数を2回増加しています。

while(found == false) { 
    if(DataStorage.passwordList.contains(number)) { 
     found= true; 
     break; 
    } 
    number += 1; 
} 
+0

ああ、私が数多くのバリエーションを試したからです。それはまだループの中でそれ自身をハングアップする –

0

各ループで2つずつ数字を増やします。いずれにせよ実行されるべきループの最後の命令としてのみ実行されるべきである。

しかし、それを超えると、あなたはその言語を誤用します。

while(found == false){は単にnumber++;

breakcontinueは無用単にwhile(!found){

number+=1;あることができすることができ、したがって、ノイズ:when found == trueとして

if(DataStorage.passwordList.contains(number)) { 
     found= true; 
     break; 
    } 
    else { 
     number+=1; 
     continue; 
    } 

、あなたはすでにループを終了し、 elseステートメントでは、最後のステートメントにいますwhileのうち、continueを呼び出す必要はありません。