2017-10-09 7 views
-3

私は問題があります。私の講師はJOptionPaneの入力とコンソールの出力を使ってループを作りたいと思っています。 JOptionPaneにloopを使用し、コンソール経由で出力を送信するにはどうすればよいですか。JOptionPane Looping

はここに私のコードです:

int even = 0; 
int odd = 0; 
int e_e = 0; 
int o_o = 0; 

String a1 = JOptionPane.showInputDialog(null, "Type in 10 integer"); 

for (int counter = 0; counter < 10; counter++){ 
    int a = Integer.parseInt(a1); 

    if (a % 2 == 0) { 
     even++; 
     e_e += a; 
    } else { 
     odd++; 
     o_o += a; 
    } 
} 

System.out.println("\n\nNumber of even numbers : " + even); 
System.out.println("Number of odd numbers : " + odd); 
System.out.println("Total of even numbers : " + e_e); 
System.out.println("Total of odd numbers : " + o_o); 
+2

まあ、ちょうどループ内 'JOptionPane'にお電話を入れて必要なものを印刷することができますか?次に、特定のプログラムを変更する方法について明確なアドバイスを提供します。 – Zabuza

+0

ユーザーがあなたの質問に答えた場合は、彼の答えを受け入れてください([回答を受け入れる:どのように動作しますか?](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) )。未回答のものを指定してください、これはStackOverflowの本当に重要な部分です、ありがとうございます。 – Zabuza

答えて

1

私はDO-WHILEループを使用しようとするだろうとint[]、例:

ソリューションは、ループ(コメントのみで行を変更)内ダイアログを入れて、簡単です:

int size = 10; 
int count = 0; 

int[] yourNumbers = new int[size]; 

do { 
    yourNumbers[count] = Integer.parseInt(JOptionPane.showInputDialog(null, 
     "Your message here.")); 

    count++; 
} while (count < 10); 

この方法で、すべての番号をループして取得できます。そして、あなたはを通してサイクルFOR-LOOPを使用して、あなたが行うことになってあなたのプログラムがどのようなものです...

System.out.println("Even Numbers are: "); 

for(int i = 0; i < yourNumbers.length; i++) { 
    if (yourNumbers[i] % 2 == 0) { 
     System.out.println(yourNumbers[i]); 
    } 
} 

System.out.println("Odd Numbers are: "); 

for(int i = 0; i < yourNumbers.length; i++) { 
    if (yourNumbers[i] % 2 != 0) { 
     System.out.println(yourNumbers[i]); 
    } 
} 
+1

私はすべての値を最初に収集してから、それらを処理し直すという利点はありません。しかし、ええ、また動作します。もちろん、値を配列に格納する方法を知っていればいいです。 – Zabuza

1

あなたの現在のコードの問題は、あなたが入力のみに番号をユーザー1時間を依頼することですが、実際に10の値をしたいように見えます。したがって、同じ値を10回解析します。

int even = 0; 
int odd = 0; 
int e_e = 0; 
int o_o = 0; 

// No return type, just a message 
JOptionPane.showMessageDialog(null, "Type in 10 integer"); 

for (int counter = 0; counter < 10; counter++) { 
    // Dialog inside the loop, asking to 
    // input a number in every iteration 
    String value = JOptionPane.showInputDialog(null, "Type in " 
     + (counter + 1) + ". value"); 
    int a = Integer.parseInt(value); 

    if (a % 2 == 0) { 
     even++; 
     e_e += a; 
    } else { 
     odd++; 
     o_o += a; 
    } 
} 

System.out.println("\n\nNumber of even numbers : " + even); 
System.out.println("Number of odd numbers : " + odd); 
System.out.println("Total of even numbers : " + e_e); 
System.out.println("Total of odd numbers : " + o_o); 
+1

ありがとうございます。心から感謝する。 – Avion100