请输入菱形的高度,推荐奇数: a Exception in thread "main" java.util.InputMismatchException at java.base/java.util.Scanner.throwFor(Scanner.java:939) at java.base/java.util.Scanner.next(Scanner.java:1594) at java.base/java.util.Scanner.nextInt(Scanner.java:2258) at java.base/java.util.Scanner.nextInt(Scanner.java:2212) at LingxingPlus.main(LingxingPlus.java:17) 进程已结束,退出代码为 1
以下是部分异常:
异常类型 说明 Exception 异常层次结构的根类 RuntimeException 运行时异常,多数为java.lang异常的根类 ArithmeticException 算数异常,如以零做除数 ArrayIndexOutOfBoundException 数组大小大于或小于实际的数组大小 NullPointerException 尝试访问null对象成员,空指针异常 ClassNotFoundException 不能加载所需的类 NumberFormatException 数字格式化异常,例如字符串到float型数字的转换无效 IOException I/O异常的根类 FileNotFoundException 找不到文件 EOFException 文件结束 InterruptedExceprtion 线程中断 IllegalArgumentException 方法接收到非法参数 ClassCastException 类型转换异常 SQLException 操作数据库异常
InputMisMatchException 输入不匹配异常,即输入的值数据类型与设置的值数据类型不能匹配
然后上代码:
import java.util.InputMismatchException;
import java.util.Scanner;
public class GuessNum1 {
public static void main(String[] args) {
//猜数游戏
int num = (int) (Math.random() * 100 + 1);
int guess = 0;
int count = 0;
System.out.println("请输入一个1-100的数字:");
Scanner scanner = new Scanner(System.in);
while (guess != num) {
try {
guess = scanner.nextInt();
count++;
}
//输入不匹配异常,即输入的值数据类型与设置的值数据类型不能匹配
catch (InputMismatchException e) {
if (scanner.nextLine().equals("exit")) {
System.out.println("退出游戏");
break;
} else if (guess % 1 != 0) {
System.out.println("您输入的为小数,请输入一个1-100的数字:");
continue;
}
System.out.println("您输入的为字符或小数,输入错误,请重新输入一个1-100的整数");
continue;
}
if (guess < 0 || guess > 100) {
System.out.println("您输入的数字不在1-100范围内,请重新输入一个1-100的整数");
continue;
}
if (guess < num) {
System.out.println("猜小了");
} else if (guess > num) {
System.out.println("猜大了");
} else if(guess == num){
System.out.println("猜对了");
}
}
System.out.println("您一共猜了"+count+"次");
}
}
运行结果:
请输入一个1-100的数字: 11 猜小了 a 您输入的为字符或小数,输入错误,请重新输入一个1-100的整数 1.5 您输入的为字符或小数,输入错误,请重新输入一个1-100的整数 150 您输入的数字不在1-100范围内,请重新输入一个1-100的整数 -5 您输入的数字不在1-100范围内,请重新输入一个1-100的整数 50 猜小了 75 猜大了 60 猜大了 55 猜大了 56 猜大了 53 猜大了 52 猜对了 您一共猜了10次 进程已结束,退出代码为 0
请输入一个1-100的数字: m 您输入的为字符或小数,输入错误,请重新输入一个1-100的整数 -7 您输入的数字不在1-100范围内,请重新输入一个1-100的整数 233 您输入的数字不在1-100范围内,请重新输入一个1-100的整数 50 猜大了 25 猜大了 exit 退出游戏 您一共猜了4次 进程已结束,退出代码为 0



