栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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;

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/979132.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号