我正在努力使一个小程序更加健壮,我需要一些帮助。
Scanner kb = new Scanner(System.in);
int num1;
int num2 = 0;
System.out.print("Enter number 1: ");
num1 = kb.nextInt();
while(num2 < num1) {
System.out.print("Enter number 2: ");
num2 = kb.nextInt();
}
数字 2 必须大于数字 1
另外,我希望程序自动检查并忽略用户是否输入字符而不是数字。因为现在当用户输入时r
程序直接退出,而不是一个数字。
Use Scanner.hasNextInt() http://java.sun.com/javase/6/docs/api/java/util/Scanner.html#hasNextInt%28%29:
Returns true
如果此扫描仪输入中的下一个标记可以解释为int
使用默认基数中的值nextInt()
方法。扫描仪不会前进超过任何输入。
这是一个片段来说明:
Scanner sc = new Scanner(System.in);
System.out.print("Enter number 1: ");
while (!sc.hasNextInt()) sc.next();
int num1 = sc.nextInt();
int num2;
System.out.print("Enter number 2: ");
do {
while (!sc.hasNextInt()) sc.next();
num2 = sc.nextInt();
} while (num2 < num1);
System.out.println(num1 + " " + num2);
你不必parseInt
或担心NumberFormatException
。请注意,自从hasNextXXX
方法不会超越任何输入,您可能需要调用next()
如果你想跳过“垃圾”,如上所示。
相关问题
- 输入错误类型时如何防止扫描仪抛出异常? (java) https://stackoverflow.com/questions/2496239/how-do-i-keep-a-scanner-from-throwing-exceptions-when-the-wrong-type-is-entered
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)