首页 > 编程知识 正文

java中scanner报错怎么办,java中scanner什么意思

时间:2023-05-05 11:21:12 阅读:111415 作者:4288

java Scanner类的nextInt方法非法输入接受问题问题代码

package com.zy.code.t1; import Java.util.inputmismatchexception; import java.util.Scanner; public class demo1{ publicstaticvoidmain (string [ ] args ) scannerscanner=newscanner ) system.in; 布尔标志=真; while(flag ) { System.out.println ('请输入数字); int num=0 try { num=scanner.nextInt (; }catch(inputmismatchexceptione ) system.out.println ) e.tostring ('输出格式错误! ' ); //scanner.next (; }switch(num ) { case 1: System.out.println ('选项1 ); 布雷克; case 2: System.out.println ('选项2 ); 布雷克; case 3: flag=false; 布雷克; default: System.out.println ('重新输入); 布雷克; } } }} 结果:

原因

nextInt ) )方法直接接收整数数据。 如果输入非整数,则会发生异常,无法读取文本缓冲区的内容,文本缓冲区的内容也不会消失。 接下来是nextInt ) )方法时,由于文本缓冲区的内容仍保留为未读取,因此异常将继续发生,并按顺序循环。

解决方法

在catch中插入Scanner.next )方法,读取缓冲区的内容并清空缓冲区

package com.zy.code.t1; import Java.util.inputmismatchexception; import java.util.Scanner; public class demo1{ publicstaticvoidmain (string [ ] args ) scannerscanner=newscanner ) system.in; 布尔标志=真; while(flag ) { System.out.println ('请输入数字); int num=0 try { num=scanner.nextInt (; }catch(inputmismatchexceptione ) system.out.println ) e.tostring ('输出格式错误! ' ); //已处理输入的不合理值scanner.next (; }switch(num ) { case 1: System.out.println ('选项1 ); 布雷克; case 2: System.out.println ('选项2 ); 布雷克; case 3: flag=false; 布雷克; default: System.out.println ('重新输入); 布雷克; } } }} 结果

参考链接

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。