为什么hasNext输入整数可以输出来,输入小数就无法直接跳到else,并且报错,而hasNextInt输入小数就可以跳转到else?

为什么hasNext输入整数可以输出来,输入小数就无法直接跳到else,并且报错,而hasNextInt输入小数就可以跳转到else?

 int i = 1;
 double k = 0.0;
 Scanner sc = new Scanner(System.in);
 if(sc.hasNext()) {
 i = sc.nextInt();
     System.out.println("你输入的整数为:"+i);
 }else{
     System.out.println("你输入的不是整数");
 ​
 }
  1. hashNext只是判断有没有输入值,不管是什么类型的,都会向下进行不会跳转到else。当输入整型2时,nextInt可以接收,于是可以输出。当输入小数2.0时nextInt无法接收,就无法输出,当然也就报错了

  1. hashNextInt则会进行判断,是否有输入并且是不是整型,不是整型则会跳转到else。

posted @ 2020-08-03 13:07  狂扫代码  阅读(203)  评论(0)    收藏  举报