如果判断我输入的数据类型?
import java.util.Scanner;
public class MenuPrint{
public static void main(String[] args){
1 | <br> |
//使用输出语句输出菜单
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语句表示跳过此次循环,进行下次循环。具体如图:
修改后的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | 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积分~
来为老师/同学的回答评分吧