2017-10-09 2 views
-3

문제가 있습니다. 저의 강사는 JOptionPane을 입력하고 콘솔 출력을 사용하여 루프를 만들기를 원합니다. JOptionPane에 루프를 사용하고 콘솔을 통해 출력을 보내려면 어떻게해야합니까?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

을 의미 i 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

현재 코드의 문제는 만 입력 번호를 사용자 한 번을 요구하지만 실제로 (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