Java 输入数字继续下一行,但输入非数字时出现异常

Java 输入数字继续下一行,但输入非数字时出现异常,java,if-statement,input,int,numeric,Java,If Statement,Input,Int,Numeric,我对编程还不熟悉,现在仍在为一些事情绞尽脑汁 因此,我尝试添加一行,允许输入,例如,文本“ABC”,它不会产生异常,而是请求输入一个数字值“123” 正如我所说,我是编程新手,我已经尝试了很多尝试,但我认为因为我使用了“int age=input.nextInt();”,它阻止了我在if语句中输入文本。我不是很确定 这也是一项作业。如果你还需要知道什么,请告诉我。我真的很想学,虽然我也不知道该看什么。等等 System.out.println("Please enter your age:

我对编程还不熟悉,现在仍在为一些事情绞尽脑汁

因此,我尝试添加一行,允许输入,例如,文本“ABC”,它不会产生异常,而是请求输入一个数字值“123”

正如我所说,我是编程新手,我已经尝试了很多尝试,但我认为因为我使用了“int age=input.nextInt();”,它阻止了我在if语句中输入文本。我不是很确定

这也是一项作业。如果你还需要知道什么,请告诉我。我真的很想学,虽然我也不知道该看什么。等等

   System.out.println("Please enter your age:");

   String bracket= "";

   int age = input.nextInt();

   if (age <= 20){
     bracket = "20 & under";
   }
   if (age > 20 && age <= 35){
     bracket = "21-35";
   }
   if (age > 35 && age <= 70){
     bracket = "36-70";
   }
   if (age > 70){
     bracket = "71 & over";
   }
System.out.println(“请输入您的年龄:”);
字符串括号=”;
int age=input.nextInt();
如果(20岁和35岁和70岁){
括号=“71及以上”;
}

您需要一个循环,在尝试读取之前,您需要检查您的
扫描仪是否有
int
,并且您可以简化
if
与一些
else
的链。像

字符串括号=”;
while(true){
System.out.println(“请输入您的年龄:”;
if(input.hasNextInt()){
int age=input.nextInt();
if(年龄<20岁){
括号=“20及以下”;
}否则,如果(年龄<36岁){
括号=“21-35”;
}否则,如果(年龄<71岁){
括号=“36-70”;
}否则{
括号=“71及以上”;
}
打破
}否则{
input.nextLine();
}
}

请阅读,非常感谢。我试过了,效果很好。你介意多花点时间解释一下原因吗?@wallace为什么?您需要检查
扫描仪是否有
int
if(input.hasnetint())
)如果有,则
age=input.nextInt()
否则,使用
input.nextLine()使用非
int
的输入我明白。谢谢。@wallace非常欢迎您,欢迎来到StackOverflow。别忘了带上。我对代码有一个快速的关注,不知道如何解决它。当输入一个不符合条件的初始输入并重复一个数字年龄的请求时,它会重复两次,就在本例中,并且每一个不正确的输入都只是一句话。你知道为什么会这样吗?非常感谢。
String bracket = "";
while (true) {
    System.out.println("Please enter your age:");
    if (input.hasNextInt()) {
        int age = input.nextInt();
        if (age < 20) {
            bracket = "20 & under";
        } else if (age < 36) {
            bracket = "21-35";
        } else if (age < 71) {
            bracket = "36-70";
        } else {
            bracket = "71 & over";
        }
        break;
    } else {
        input.nextLine();
    }
}