나는 대답을 찾으려고하지만 어쩌면 무엇을 묻는 지 이상한 것이 아니며, 여기서 잘못된 점을 알고 싶습니다. (내 영어에 대한 미안, 그 litlle 가난한하지만 최선을 다하겠습니다)자바에서 음수를 사용하는 스캐너의 이상한 동작
이것은 거래입니다, 나는 방법을 사용하여 자바에서 int를 반환하는 방법은 프로그램을 피하기 위해 캐치를 사용하여 폭발
아니라 (그 메신저 그냥 프로그래밍 및 자바 아 파크 시작 유의하시기 바랍니다)이 metod이 같은 캐치하려고 사용합니다. (이 모든 코드가^영어로 중상되었습니다 ^)
이public int safeEnter(String message, int min, int max) {
/**
* This method takes some parameters and validates the true enter of an int
* inside some ranges
*/
int aux;
String auxInt;
do {
auxInt = input.nextLine().trim();
try {
aux = Integer.parseInt(auxInt);
} catch (NumberFormatException ex) {
System.out.println("Enter a " + message + " between " + min + " & " + max);
aux = Integer.MIN_VALUE;
}
}
while(aux < min || aux > max);
return aux;
}
을
Weel, 문제는이 방법을 다음과 같이 사용하고 있습니다 :
int month = safeEnter("month", 1, 12);
이 내가 그것을 char 또는 int 형의 대신 단어를 주면 문제의 타당성을 검증하고, 계획이었습니다으로이 실제로 prety 작동, 다시 INT를 요청합니다,하지만 난 이것을 음수를 제공하는 경우 내가 메시지를 표시하고 다시 전화 번호를 요청하기 전에 2를 입력해야합니다, 나는이 문자열이나 int 범위 또는 범위 사이의 int하지만 beeing 긍정적 인 경우이 hapenn 못해.
여기에 무슨 문제가 있다고 생각하십니까? 내가 "알았어 야지 스캐너에 대해 뭔가"괜찮 았을까?
최저
, 마우는
입력 값과 예상 출력 값주십시오 - 죄송합니다 – Bohemian
가 여기 물어 내 처음이며, 내가하지 영어를 잘 해요 단위 테스트 등을 무엇을 그게 무슨 소리 야? 나는이 메소드가 int의 입력을 검증하고 문자열이나 char를받는다면 다시 숫자를 요구할 것이라고 말했다. 더 자세히 설명하고 최선을 다할 것이다. – Mauricio