package project2;
import java.util.*;
public class Project2 {
public static void main(String[] args) {
String Name;
int age;
Scanner input = new Scanner(System.in);
System.out.print("Enter your age :");
age = input.nextInt();
if (age>=16){
System.out.println("Your good to go");}
else if ((age>=1)&&(age<=15)){
System.out.println("Your not allowed to Procced");}
else{
System.out.println("Out of range");}
}
}
对不起,新手:/。 因此,当我在"输入您的年龄"中输入字母时显示此问题
输入您的年龄:q
线程"主"中的异常java.util.InputMismatchException
在java.util.Scanner.throwFor(Scanner.java:909)
在java.util.Scanner.next(Scanner.java:1530)
在java.util.Scanner.nextInt(Scanner.java:2160)
在java.util.Scanner.nextInt(Scanner.java:2119)
在project2.Project2.main(Project2.java:14)
Java结果:1
我想输入任何字母显示"无效输入"。 谁能帮我? [对不起英语不好]
您期望发生什么?
q不是int,nextInt()需要整数对吗?
我想要输入字母显示"无效输入"
if i typed any letter it shows"Invalid input". Can anyone help me?
捕获异常并打印消息,如下所示-
try{
System.out.print("Enter your age :");
age = input.nextInt();
}catch(RuntimeException ex){
System.out.println("Invalid input");
}
嘿,吉祥的光! 谢谢你 :)
使用异常处理
import java.util.*;
public class crack
{
public static void main(String[] args)
{
String Age;
Scanner input = new Scanner(System.in);
System.out.print("Enter your age :");
Age = input.nextLine();
try
{
int age = Integer.parseInt(Age);
if (age>=16)
{
System.out.println("Your good to go");
}
else if ((age>=1)&&(age<=15))
{
System.out.println("Your not allowed to Procced");
}
}
catch(NumberFormatException nFE)
{
System.out.println("out of range");}
}
}
}
将输入作为String并检查它是否为数字
Scanner input = new Scanner(System.in);
System.out.print("Enter your age :");
String rawAge = input.next();
try {
int age = Integer.parseInt(rawAge);
System.out.println("Age:" + age);
// Do something with age
} catch (NumberFormatException e) {
System.out.println("Invalid input for age");
}
尝试这个 :
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int age = 0;
boolean isContinue = true;
do {
try {
System.out.print("Enter your age :");
String age1 = input.next();
age = Integer.parseInt(age1);
isContinue = false;
if (age >= 16) {
System.out.println("Your good to go");
} else if ((age >= 1) && (age <= 15)) {
System.out.println("Your not allowed to Procced");
} else {
System.out.println("Out of range");
}
} catch (NumberFormatException e) {
System.out.println("Not an valid age");
}
} while (isContinue);
System.out.println("other code");
}
在使用input.nextInt()读取int之前,请使用input.hasNextInt()进行检查,这将足以读取它是否是一个int(但将其留给nextInt读取;它不会弄乱任何内容),然后将其返回。
if(!input.hasNextInt())
System.out.println("Not an int");
else
{
int age = input.nextInt();
// other code here
}
您是否曾经问过某人他的年龄,他告诉过您:q? 这不是年龄,也不是int。
由于nextInt,您正在获取异常:
throws InputMismatchException - if the next token does not match the
Integer regular expression, or is out of range
这篇博客讨论了在Java程序中如何处理用户输入年龄时遇到的异常情况。当用户输入非整数(如字母)时,程序会抛出`InputMismatchException`。通过使用异常处理机制,例如`try-catch`块,可以捕获此类异常并显示“无效输入”错误消息,确保程序的稳定运行。示例代码展示了不同方法来检查输入是否为有效的整数年龄。

564

被折叠的 条评论
为什么被折叠?



