Try-Catch 选项在 Java 中没有 运行
Try-Catch option does not run in Java
我正在尝试在 Java 中编写一个十进制和二进制转换器。我正在尝试使用 try & catch 选项进行错误处理。例如,如果任何一个输入 "a" 作为二进制数,它将打印 "Wrong Input"。我为此功能使用了解析和尝试捕获。但它不起作用。我试图找出问题所在,但找不到。谁能帮我写这段代码?当我为二进制到十进制的转换写入“1”时,它会转到代码的末尾。
完整代码在这里:
package binary.with.decimal;
import java.util.Scanner;
public class RiaJava {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int binaryp = 0;
int n;
int base = 2;
int result = 0;
int multiplier = 1;
System.out.println("1.Binary to Decimal \n 2.Decimal to Binary");
System.out.println("Enter Your Option Number:");
n = scan.nextInt();
switch (n) {
case 1:
System.out.println("Input Binary Number:");
String binary = scan.nextLine();
scan.close();
try {
binaryp = Integer.parseInt(binary);
}
catch (NumberFormatException e) {
System.out.println("Wrong Input!!!");
}
while (binaryp > 0) {
int residue = binaryp % base;
binaryp = binaryp / base;
result = result + residue * multiplier;
multiplier = multiplier * 10;
}
System.out.println("Decimal....." + result);
break;
case 2:
System.out.println("Input Decimal Number:");
int decimal = scan.nextInt();
scan.close();
while (decimal > 0) {
int residue = decimal % base;
decimal = decimal / base;
result = result + residue * multiplier;
multiplier = multiplier * 10;
}
System.out.println("Binary....." + result);
break;
default:
System.out.println("you have selected wrong option number");
break;
}
}
}
scan.nextLine()
应该是 scan.next()
nextLine()
不等待用户输入,而是读取剩余缓冲区直到下一行结束。
我正在尝试在 Java 中编写一个十进制和二进制转换器。我正在尝试使用 try & catch 选项进行错误处理。例如,如果任何一个输入 "a" 作为二进制数,它将打印 "Wrong Input"。我为此功能使用了解析和尝试捕获。但它不起作用。我试图找出问题所在,但找不到。谁能帮我写这段代码?当我为二进制到十进制的转换写入“1”时,它会转到代码的末尾。 完整代码在这里:
package binary.with.decimal;
import java.util.Scanner;
public class RiaJava {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int binaryp = 0;
int n;
int base = 2;
int result = 0;
int multiplier = 1;
System.out.println("1.Binary to Decimal \n 2.Decimal to Binary");
System.out.println("Enter Your Option Number:");
n = scan.nextInt();
switch (n) {
case 1:
System.out.println("Input Binary Number:");
String binary = scan.nextLine();
scan.close();
try {
binaryp = Integer.parseInt(binary);
}
catch (NumberFormatException e) {
System.out.println("Wrong Input!!!");
}
while (binaryp > 0) {
int residue = binaryp % base;
binaryp = binaryp / base;
result = result + residue * multiplier;
multiplier = multiplier * 10;
}
System.out.println("Decimal....." + result);
break;
case 2:
System.out.println("Input Decimal Number:");
int decimal = scan.nextInt();
scan.close();
while (decimal > 0) {
int residue = decimal % base;
decimal = decimal / base;
result = result + residue * multiplier;
multiplier = multiplier * 10;
}
System.out.println("Binary....." + result);
break;
default:
System.out.println("you have selected wrong option number");
break;
}
}
}
scan.nextLine()
应该是 scan.next()
nextLine()
不等待用户输入,而是读取剩余缓冲区直到下一行结束。