1、java的Scanner类提供了nextInt、nexFloat、nextDouble等方法,可以像类似C语言的scanf那样读取指定类型的数字。首先定义一个Scanner对象:Scanner sn = new Scanner(System.in);
2、用sn.nextInt读取整型数,注意如果输入的不是整形数则该函数会抛出Input怡觎现喾MismatchException异常,应予以捕获。System.out.print("请输入一个整数:");try{intVal = sn.nextInt();System.out.println("你输入了:" + intVal);}catch(InputMismatchException e){System.out.println("必须输入整数!");}
3、用sn.nextFloat读取单精度浮点数,如果输入的不是数字则也会抛出Input怡觎现喾MismatchException异常,应予以捕获。System.out.print("请输入一个浮点数:");try{floatVal = sn.nextFloat();System.out.println("你输入了:" + floatVal);}catch(InputMismatchException e){System.out.println("必须输入数!");}
4、用sn.nextDouble读取双精度浮点数,操作与单精度类似。System.out.print("请输入一个浮点数:"稆糨孝汶;);try{doubleVal = sn.nextDouble();System.out.println("你输入了:" + doubleVal);}catch(InputMismatchException e){System.out.println("必须输入数!");}
5、流使用完毕后应予以关闭:sn.close();完整代码如下图。
6、测试程序,首先正常输入,可以看到没输入一个数,控制台会进行回显。
7、接下来试试异常情况,在要求输入整数时输入小数,则会提示“必须输入整数”,在输入浮点数时输入字母,则会提示“必须输入数”,虽然操作非法,程序依然可以执行,这是捕获了异常的缘故。