2016-11-25 27 views
-1

私はあなたが複数の整数を入力してそれらの整数の特定の整数を検索させるコードを持っている問題に遭遇しています。 私が持っている問題は、入力が整数で、次に単語です。 (例:4 Java) それ以外のコードは意図したとおりに動作していますが、特定の答えがintであれば、正しい入力として読み込まれます。受け入れ可能な入力を作成する問題

public static void main(String[] args) { 
Random rng = new Random(); 
boolean Finished = true; 
boolean Försök = true; 
int Mitt = rng.nextInt(100)+1; 
int Head; 

while (Finished == true){ 
System.out.println(Mitt); 
    String S = JOptionPane.showInputDialog("Var god gissa vilket heltal jag      valt! \n Du kan skriva in max 5 heltal varje gissning!"); 
// allows you to enter 5 integers 
    if (S == null|| (S != null && ("".equals(S)))){ 
System.exit(0); 
} 

    Scanner Svar = new Scanner(S); 
if (Svar.hasNextInt() == false || Pattern.matches("[a-öA-Ö ]+", S)) { 

    JOptionPane.showMessageDialog(null, "Error, var god skriv in ett heltal"); 
    Mitt = rng.nextInt(100)+1; 

} 
else { 


ArrayList<Integer> mylist = new ArrayList<>(); 

while (Svar.hasNextInt() && Finished == true){ 

    Head = Svar.nextInt(); 

    mylist.add(Head); 
     if (mylist.size()>5){ 
    JOptionPane.showMessageDialog(null, "Tyvärr skrev du in mer än 5 heltal! \n Var god mata in igen!"); 
    Försök = false; 
    break; 
    } 

    System.out.println(mylist); 

    if (Head>100 || Head<0){ 
    JOptionPane.showMessageDialog(null, "Tyvärr skrev du in ett heltal som var över 100 eller mindre än 0! \n Var god mata in igen!"); 
    Försök = false; 
    break; 
    } 


if (mylist.contains(Mitt)){ 
    JOptionPane.showMessageDialog(null, "ayo du svarade rätt med " + Mitt); 
    System.exit(0); 

} 

    else if (Försök == true){ 
    JOptionPane.showMessageDialog(null, "Tyvärr svarade du fel! du kan försöka igen! rätt svar är " + Mitt); 

    } 

    } 
    } 



    } 





    } 
    } 
+0

「4 Java」と入力するとどうなりますか?エラーを出して終了することは私には合理的に思えるでしょう。 – Aaron

答えて

0

この妥当性はどこで確認されますか?
最初のトークンが数字であるかどうかをチェックするだけで、それ以降は数字が見つからなくなるまで簡単に読むことができます。したがって、最初のトークンが数字である限り、コードによって有効な入力として認識されます。

次回はデバッガを使用してください。そのような質問はここで話題にはならない。

関連する問題