我遇到了这个问题 - 编写一个读取数字并打印所有二进制数字的程序:打印剩余数字%2,然后用数字/ 2替换数字。继续直到数字为0。 它成功地显示了二进制数字,但我想对其进行弹出证明,以便在使用字母时不会崩溃。它没有崩溃但我想允许用户输入另一个号码而不重新启动程序。关于如何做到这一点的任何提示?
Scanner scanIn = new Scanner(System.in);
int number = 0;
System.out.print("Please enter a number: ");
try {
number = scanIn.nextInt();
} catch (InputMismatchException ime) {
System.out.println("Please only enter integers!");
number = 0;
scanIn.nextLine();
}
while (number > 0) {
System.out.println(number % 2);
number /= 2;
}
}
答案 0 :(得分:0)
你需要2个循环, 第一个将接受输入,直到它是一个整数(Integer.parseInt())被try / catch包围
然后,当您确认输入为整数时,就会开始循环。
答案 1 :(得分:0)
一种方法是将代码包含在另一个while循环中,该循环永远迭代,并在满足某个条件时突破循环。如果输入的输入无效,我还修改了你的代码以反复提示输入整数。
Scanner scanIn = new Scanner(System.in);
int number = 0;
while(true) {
System.out.print("Please enter an integer, or 0 to quit: ");
// input verification
boolean valid = false;
while(!valid) {
try {
number = scanIn.nextInt();
valid = true;
} catch (InputMismatchException ime) {
System.out.println("Please only enter integers!");
System.out.print("Please enter an integer, or 0 to quit: ");
valid = false;
}
}
// break out of the loop if 0 is entered
if(number == 0) {
break;
}
while (number > 0) {
System.out.println(number % 2);
number /= 2;
}
}