关于异常de1

关于异常de1

Scanner s=new Scanner(System.in);

System.out.println("请输入");

int n=0;

try{

n=s.nextInt();

}catch(InputMismatchException e){

System.out.println("重新输入整形");

n=s.nextInt();

}

while(n!=0&&n!=1&&n!=2){

  System.out.println("请重新输入");

 s.nextInt();

}

}

输入非整形数据后异常,catch,怎么继续输入啊?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

试试先定义一个布尔型变量flag并赋值为true;声明一个int类型的变量n,用来接收输入的数据,然后可以参考一下以下示例:

Scanner s = new Scanner(System.in);
while(flag){
try{
System.out.println("请输入一个整数:");
n=s.nextInt();
flag=false;//如果是整数就跳出循环
}catch(InputMismatchException e){
System.out.println("重新输入整数:");
s.next();
}
}


  • _少_5 提问者 #1
    非常感谢!
    2018-01-19 15:53:45
  • _少_5 提问者 #2
    Scanner s=new Scanner(System.in); System.out.println("----------------"); int n=0; boolean flag=true; while(flag){ try{ System.out.println("请输入一个整数:"); n=s.nextInt(); flag=false; }catch(InputMismatchException e){ s.next(); } } System.out.println("----------------"); 这样?
    2018-01-19 16:02:08
  • THappy 回复 提问者 _少_5 #3
    恩恩,可以~~
    2018-01-19 16:20:10
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师