如果判断我输入的数据类型?
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类型,系统如何能判断出这些?
正在回答
同学你好,如果想要判断输入的数据类型的正确性,可以采用如下思路:
因为输入其他数据类型时,会出现 InputMismatchException异常,这时需要对异常信息进行捕获。可以使用try{} catch{}对键盘输入的代码进行捕获,并在catch中加上sc.next()方法表示进行重新输入直到输入有效的数字,停止输入并且添加错误提示语句以及continue语句表示跳过此次循环,进行下次循环。具体如图:
修改后的代码如下:
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 。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星