我正在创建一个小算法,这是其中的一部分。
如果用户输入非整数值,我想输出一条消息并让用户再次输入数字:
boolean wenttocatch;
do
{
try
{
wenttocatch = false;
number_of_rigons = sc.nextInt(); // sc is an object of scanner class
}
catch (Exception e)
{
wenttocatch=true;
System.out.println("xx");
}
} while (wenttocatch==true);
我遇到了一个永无休止的循环,我不明白为什么。
如何判断用户是否输入了非整数?
如果用户输入非整数,如何要求用户再次输入?
Update
当我打印异常时,我收到“InputMismatchException”,我该怎么办?
The Scanner
在读取该项目之前不会前进。这在扫描仪JavaDoc。因此,您可能只需阅读使用的价值.next()
方法或检查是否hasInt()
读之前int
value.
boolean wenttocatch;
int number_of_rigons = 0;
Scanner sc = new Scanner(System.in);
do {
try {
wenttocatch = false;
number_of_rigons = sc.nextInt(); // sc is an object of scanner class
} catch (InputMismatchException e) {
sc.next();
wenttocatch = true;
System.out.println("xx");
}
} while (wenttocatch == true);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)