import java.util.Scanner;
class Solution{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int yearInValidIntergerForm;
while (true) {
String year = input.nextLine();
try{
yearInValidIntergerForm = Integer.parseInt(year);
if(yearInValidIntergerForm<1400 || yearInValidIntergerForm>2600){
//Custom exception - this is optional. As an alternative, you can just print invalid message instead of throwing exception.
throw new Exception("Invalid range for input year.");
}
System.out.println("Success");
break;
}catch(NumberFormatException e){
System.out.println("Input is not a valid integer.");
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}
}
输入:
bgsd
3400
1500
输出:
Input is not a valid integer.
Invalid range for input year.
Success
2条答案
按热度按时间u91tlkcl1#
最好的方法是使用异常处理。另外,使用nextline()方法扫描输入,并使用integer.parseint()方法解析输入。
使用字符串无效时抛出的适当异常(在本例中为numberformatexception)。
请看以下代码:
输入:
输出:
vxbzzdmp2#
用户输入应该与int输入类型匹配。使用try-catch块可以避免在输入字符串输入时出现异常。