如果判断我输入的数据类型?

如果判断我输入的数据类型?

import java.util.Scanner;

public class MenuPrint{

    public static void main(String[] args){


        //使用输出语句输出菜单

        System.out.println("输入数字,选择要执行的操");

        System.out.println("1--继续下一关");

        System.out.println("2--重玩该关卡");

        System.out.println("0--退出");

        

    //从键盘输入数据,存储到整型变量中

        Scanner sc =new Scanner(System.in);

        

//使用while循环,并在循环中判断输入的数据是0还是1,并给出提示

        while(true){

            int a = sc.nextInt();

            if (a==0){

                System.out.println(a);

                System.out.println("退出!");

                break;

            }else if (a==1){

                System.out.println(a);

                System.out.println("下一关开始啦!");

            }else if (a==2){

               System.out.println(a);

                System.out.println("继续本关卡!"); 

            }else {

                System.out.println("输入错误,请重新输入!");

            }

            System.out.println("输入数字,选择要执行的操");

        System.out.println("1--继续下一关");

        System.out.println("2--重玩该关卡");

        System.out.println("0--退出");

        }

       假设我输入的是double或String类型,系统如何能判断出这些? 


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,如果想要判断输入的数据类型的正确性,可以采用如下思路:

因为输入其他数据类型时,会出现 InputMismatchException异常,这时需要对异常信息进行捕获。可以使用try{} catch{}对键盘输入的代码进行捕获,并在catch中加上sc.next()方法表示进行重新输入直到输入有效的数字,停止输入并且添加错误提示语句以及continue语句表示跳过此次循环,进行下次循环。具体如图:

http://img1.sycdn.imooc.com//climg/5d8191c7093bb64306150304.jpg

修改后的代码如下:

import java.util.Scanner;

public class MenuPrint {

	public static void main(String[] args) {

		// 使用输出语句输出菜单

		System.out.println("输入数字,选择要执行的操");

		System.out.println("1--继续下一关");

		System.out.println("2--重玩该关卡");

		System.out.println("0--退出");

		// 从键盘输入数据,存储到整型变量中

		Scanner sc = new Scanner(System.in);

		// 使用while循环,并在循环中判断输入的数据是0还是1,并给出提示

		while (true) {

			int a = 0;
			try {
				a = sc.nextInt();
			} catch (java.util.InputMismatchException e) {
				sc.next();
				System.out.println("输入的数据格式有误,请重新输入");
				continue;
			}
			if (a == 0) {

				System.out.println(a);

				System.out.println("退出!");

				break;

			} else if (a == 1) {

				System.out.println(a);

				System.out.println("下一关开始啦!");

			} else if (a == 2) {

				System.out.println(a);

				System.out.println("继续本关卡!");

			} else {

				System.out.println("输入错误,请重新输入!");

			}

			System.out.println("输入数字,选择要执行的操");

			System.out.println("1--继续下一关");

			System.out.println("2--重玩该关卡");

			System.out.println("0--退出");

		}

	}
}

这里不是习题要求的内容,同学只需要了解一下就可以了,同学如果想深入学习,可以看一下Java就业班的课程:  https://class.imooc.com/sale/newjava   。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕酷酷 2019-09-17 11:45:07

同学你好,代码完成的很棒!

1、如果输入的是double类型,只需要调用输入double数据的方法就可以了,将 int a = sc.nextInt();更改为 double a = sc.nextDouble();具体如下:

http://img1.sycdn.imooc.com//climg/5d805645095ddf9d04450132.jpg

2、如果输入的是String类型,输入语句需要更改为:String a = sc.next();输入字符串类型的值,在判断时,使用双引号进行值的判断,具体如下:

http://img1.sycdn.imooc.com//climg/5d8056b809eab68307200420.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕UI2487242 #1
    谢谢你的回答,我的意思是系统如何能将键盘输入的值与需要输入的值进行校验呢?以上为例需要录入int类型的值,但是如果我输入成了double或者char类型的值,系统如何提示出您输入的数据类型不对,请重新录入
    2019-09-17 21:35:29
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
零基础Java入门体验课
  • 参与学习           人
  • 提交作业       437    份
  • 解答问题       393    个

慕课网首推Java体验课,用体系化的学习方式+实战性的项目练习,带你轻松入门Java~

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师