我试图找到答案,但不能,也许是一个奇怪的问题,我会问什么,我想知道这里出了什么问题。 (对不起,我的英语,它litlle可怜,但我会尽我所能)扫描仪在java中使用负数的奇怪行为
这是交易,我使用的方法返回一个int在java中,该方法使用try catch避免程序爆炸(请注意,我只是开始蒙山编程和Java)
好,这梅托德使用尝试捕捉这样的:(所有这些代码已经traduced英语^ ^)
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这将验证问题,并要求再一个int,如刨这个工程实际上prety,但如果我让这个负数我应该先输入2才能显示消息并再次询问数字,如果我给它一个字符串或范围或范围之外的整数,但是肯定是正确的,那么这将不会发生。
您认为这可能是什么问题?因为我“认为”它只是没关系,关于扫描仪,我应该知道或我失踪?
最佳, 毛
请给输入值和预期输出值 - 就像一个单元测试 – Bohemian 2011-06-11 03:57:15
对不起,是我第一次问在这里,我不是好英语,有什么你的意思是谁?我告诉说,该方法验证了一个int的输入,并且如果它接收到一个字符串或一个字符,它会再次请求这个数字....请更多地解释我,并且我会尽我所能 – Mauricio 2011-06-11 05:05:39