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