A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

举个例子:
import java,out.Scanner;
calss Demo_Scanner {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个整数,我们会输出它的2倍:");
                int x = nextInt();
                x *= 2;
                System.out.println("x的2倍是:" + x);
        }
}

键盘录入可以写任何数字、字母、符号,但是我们只限定了输入的是int类型的数字,如果输入其他的字母或者符号等等,就会报错,不会按照我们想要的结果输出。为了使这个代码更严谨,即使输入的不是我们规定的数据类型,也不会报错,只会输出“你输入的值不合法,请重新输入!”,直到输入规定的值才会输出结果。
记得好像是用try{}catch{}对吧?,该怎么用?新手提问,求大牛指导。

5 个回复

倒序浏览

  1. import java.util.Scanner;
  2. public class Demo_Scanner {
  3.         public static void main(String[] args) {
  4.                 Scanner sc = new Scanner(System.in);
  5.                 System.out.println("请输入一个整数,我们会输出它的2倍:");
  6.                 while (true) {
  7.                         String value = sc.next();// 先用字符串类型来接收输入的内容
  8.                         if (value.matches("[\\d]+")) {        //然后利用正则表达式判断输入的是否是数字
  9.                                 int x = Integer.parseInt(value);        //把字符串转换成int类型
  10.                                 x *= 2;
  11.                                 System.out.println("x的2倍是:" + x);
  12.                                 break;        //结束循环
  13.                         }
  14.                         else        //不是数字就提示错误
  15.                                 System.out.println("格式错误! 请继续输入");
  16.                 }
  17.                 sc.close();

  18.         }
  19. }
复制代码
回复 使用道具 举报 1 0
nextInt(),只会接受下一个你输入的字符或数字,所以你只要判断一下输入的东西是不是匹配的类型就可以了,详细可以看看楼上代码,
回复 使用道具 举报 1 0

这个程序写的很好,谢谢分享
回复 使用道具 举报
haoliudeyangzi
回复 使用道具 举报
挺好的,加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马