Java异常处理语句练习:猜数游戏进阶版

       异常指的是在程序运行过程中发生的异常事件,通常是由外部问题(如硬件错误、输入错误)所导致的。在Java 等面向对象的编程语言中异常属于对象。
       异常( Exception )都是运行时的。编译时产生的不是异常,而是错误( Error )。最开始大家都将程序设计导致的错误(Error )不属于异常( Exception )。但是一般都将Error 作为异常的一种,所以异常一般分两类, Error Exception
       也就是这样的:
请输入菱形的高度,推荐奇数:
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型数字的转换无效
IOExceptionI/O异常的根类
FileNotFoundException找不到文件
EOFException文件结束
InterruptedExceprtion线程中断
IllegalArgumentException方法接收到非法参数
ClassCastException类型转换异常
SQLException

操作数据库异常

InputMisMatchException输入不匹配异常,即输入的值数据类型与设置的值数据类型不能匹配

然后上代码:

import java.util.InputMismatchException;
import java.util.Scanner;
/**
 * Created with IntelliJ IDEA.
 * @Progect:IntelliJ IDEA
 * @User:megumi
 * @Author: kawaismile
 * @Date: 2022/06/14/15:41
 * @Description:猜数游戏进阶版,除了提示数字猜大猜小外,还会提示错误的类型,并且输入“exit”可以退出游戏
 */
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值