2017-03-03 7 views
0

なぜこのコードが機能しないのか分かりません。私はここで何が欠けていますか?ダイアログボックスでループする

ユーザーが「はい」または「いいえ」を選択した後に別のダイアログボックスが表示されると思われますが、プログラムを実行するたびにyまたはnoを要求してから何も起こりません。

私は何をする必要がありますか?

public static void main(String[] args) { 
    Scanner in = new Scanner(System.in); 
    int max = 0; 
    int min = Integer.MAX_VALUE; 
    String number; 
    boolean yn = true; 

    do { 
     number = JOptionPane.showInputDialog("Please enter a number"); 

     int num = Integer.parseInt(number); 

     if (num > max) { 
      max = num; 
     } 

     if (num < min) { 
      min = num; 
     } 
     System.out.println(min + " " + max); 

     JOptionPane.showInputDialog("Would you like to enter another number? (y/n)"); 
     String ny = in.nextLine(); 

     if (ny.equals("n")) { 
      yn = false; 
     } 

     JOptionPane.showInputDialog(ny); 


    } while (yn == true); 

    JOptionPane.showMessageDialog(null, "The max number is " + max + " and the mininum number is " + min); 

} 

}

+0

スキャナからの入力を待っています。私はあなたが意図したものではないと思っています。 – shmosel

答えて

0

プログラムは、最初の行に定義されたスキャナに基づいて、System.inからの入力を待って

String ny = in.nextLine(); 

に停止します。

コンソールに「n」と入力してEnterキーを押すと、プログラムは次のダイアログボックスを表示して表示します。

私はあなたが言うことを意味を推測:

String ny = JOptionPane.showInputDialog("Would you like to enter another number? (y/n)"); 
0

あなたが持っている問題は、あなたがパネルからの入力を受け付けておりません、代わりにコンソールからそれを取っているということです。

String ny = JOptionPane.showInputDialog("Would you like to enter another number? (y/n)"); 

しかし、このラインで別の問題があり、:

JOptionPane.showInputDialog(ny); 

それはそのペインが作成されますので、同様にこの問題を解決するには、JPaneからの入力に等しくなるようにNYを設定yまたはnを表示する必要はなく、入力を受け入れません。この行はそこにある必要はないので、削除する必要があります。そうでなければあなたのコードはうまくいく。

関連する問題