2014-02-16 2 views
1

사용자가 0보다 작은 값을 입력하자 마자 프로그램을 끝내기를 원하지만이 프로그램은 세 가지 값을 모두 묻은 채 종료합니다.사용자가 모든 값을 입력하기 전까지 음수를 입력하면 루프가 끝나지 않습니다.

예를 들어 -3, 2, 1을 입력하면 첫 번째 높이에 -3을 입력 한 후 오류가 표시되지 않고 대신 세 개의 값을 모두 사용하여 "잘못된 높이"메시지가 표시됩니다.

사용자가 음수 값을 입력하자마자 잘못된 높이의 프로그램 표시 오류 메시지를 표시하려면 어떻게합니까? 모든 사용자가 값을 입력 완료까지

//Program Asking user to input three different heights 
HeightOne = Integer.parseInt(JOptionPane.showInputDialog("Enter Height of First Tower")); 

HeightTwo = Integer.parseInt(JOptionPane.showInputDialog("Enter Height of Second 
Tower")); 

HeightThree = Integer.parseInt(JOptionPane.showInputDialog("Enter Height of Third    Tower")); 

If (centimeterHeightOne < 0 || centimeterHeightTwo < 0 || centimeterThree < 0) 
{ 
    JOptionPane.showMessageDialog(null, "Invalid height"; 
} 
else 
{ 
    conditions... 
} 

답변

4

루프는 음수 들어가면 끝나지 않는다.

그게 바로 당신이하는 일이기 때문입니다.

heightOne = Integer.parseInt(JOptionPane.showInputDialog("Enter Height of First Tower")); 
if(heightOne < 0) { 
    displayError(); 
    //return; ? 
} 
heightTwo = ... 
if(heightTwo < 0) { 
    displayError(); 
} 
... 

Java Naming Conventions를 따라 heightOneHeightOne 변경 사항 : 하나 개의 음의 값을 후 종료 할 경우 입력을 요청할 직후 if을 넣어. 현재의 방법은 main 경우

+0

이해하지만 문제는 오류 메시지를 세 번 적어두고 싶지 않다는 것입니다. 나는 모든 조건을 조합하는 이유가 있는지 궁금해하고있었습니다. – user3315642

+0

@ user3315642 세 번 인쇄 할 필요가 없습니다. 오류를 표시 할 때 원하는대로 할 수 있습니다. – Maroun

+0

우리가 try/catch 예외 처리를 수행 할 수있는 방법이 있습니까? – user3315642

0

당신은 모든 값 이후의 검사,

heightOne = Integer.parseInt(JOptionPane.showInputDialog("Enter Height of First Tower")); 
if (heightOne < 0) { 
    JOptionPane.showMessageDialog(null, "Invalid height"); 
    return; 
} 

return 문은 현재의 방법과 수익을 중단 같은 것을 포함 할 필요가, 프로그램이 중지됩니다. 그럼에도 불구하고 main 방법에 있지 않더라도 강제로 프로그램을 종료하려면 System.exit()을 호출하여이 작업을 수행 할 수 있습니다.

+0

도 감사합니다. – user3315642

관련 문제