问题描述
因此,我正在处理一个涉及二进制转换等的问题。但是我的问题是,每当catch块完成执行时,我似乎都无法在代码中制作do-while语句以进行环回。这是我的代码。
System.out.println("This program converts a binary value to its decimal counterpart.\n");
Scanner input = new Scanner(System.in);
boolean invalidInput = true;
do {
try {
System.out.print("(>) Enter the value to be converted: ");
String numberToConvert = input.nextLine();
long converted = Long.parseLong(numberToConvert,2);
System.out.println("(>) Decimal value of " + numberToConvert + " is : " + converted + "\n");
invalidInput = false;
} catch (Exception e) {
System.out.println("(!) Entered value is non binary,please try again.\n");
input.next();
}
} while (invalidInput);
解决方法
从catch块中删除input.next(),然后尝试:-
System.out.println("This program converts a binary value to its decimal counterpart.\n");
Scanner input = new Scanner(System.in);
boolean invalidInput = true;
do {
try {
System.out.print("(>) Enter the value to be converted: ");
String numberToConvert = input.nextLine();
long converted = Long.parseLong(numberToConvert,2);
System.out.println("(>) Decimal value of " + numberToConvert + " is : " + converted + "\n");
invalidInput = false;
} catch (Exception e) {
System.out.println("(!) Entered value is non binary,please try again.\n");
}
} while (invalidInput);