Programación Java: escriba una aplicación, ingrese dos parámetros decimales desde la línea de comando y encuentre su cociente. Requerir que el programa capture NumberFo
Pregunta de análisis
NumberFormatException, formato de número anormal, que a menudo ocurre al convertir de cadena a número
Por ejemplo, abc2.0: convertir a número, el El sistema lanzará esta excepción.
ArithmeticException, excepto 0 excepción. Esta excepción es común al dividir números enteros entre números enteros. Si el dividendo es 0, se generará esta excepción. Pero el mensaje requiere dividir decimales entre decimales. Incluso si el doble decimal es 0, no es simplemente 0 cuando se almacena, sino que puede ser 0,00000000001, etc., entonces no se generará la excepción de división por cero.
Podemos determinar manualmente si el dividendo es igual a 0. Si es igual a 0, lanzamos manualmente la excepción y luego la capturamos
Código de referencia 1: ¿Versión simple import?java.util.Scanner;
public?class?DivDemoSp?{
public?static?void?main(String[]?args)?{
Scanner?sc?=? new?Scanner( System.in);
while(true){
try{
System.out.println("Ingrese divisor");
double?d1?=?Double.parseDouble(sc.nextLine());
System.out.println("Ingrese dividendo");
double ?d2?= ?Double.parseDouble(sc.nextLine());
if(d2==0){
throw?new?ArithmeticException("Detectado excepto 0 excepción ~ ~!! ");// Lanzar manualmente una excepción de división por cero
}
double?d3?=?d1?/?d2;
System.out.println ("Resultado del cálculo: "?+?d1?+?"/"?+?d2?+?"="?+?d3);
break;//If se puede ejecutar normalmente aquí, lo que significa que la entrada anterior es correcta, por lo que puede saltar del bucle
}catch(NumberFormatException?e1){//Capturar la excepción de formato numérico
System.out.println("catch A una excepción de formato numérico");
continue;
}catch?(ArithmeticException?e2)?{//Atrapó una división- excepción por cero
System.out .println(e2.getMessage());
continuar;
}
}
}
}
Divisor de entrada del código de prueba
12
Ingrese dividendo
¡Capté una excepción de división por 0~~! !
Ingrese el divisor
12
Ingrese el dividendo
agc
Detectó una excepción de formato numérico p>
Ingrese el divisor
12
Ingrese el dividendo
0.5
Resultado del cálculo: 12.0/0.5=24.0
Código de referencia dos: public?class?DivDemo?{
static?Scanner?sc?=?new?Scanner(System.in);//?Defina un escáner para leer la entrada Información
public?static?void?main(String[]?args)?{//?método principal
div();//?Llamar al método de división
}
//método div, utilizado para obtener 2 decimales y realizar la operación de división. Si el dividendo es 0, se generará una excepción de división por cero
. static?void?div ()?{
double?d1?=?getNum("Input divisor");//?Llamar al método de ingreso de números
double?d2? =?getNum("Ingresar dividendo");
t
ry?{
if?(d2?==?0)?{//Si el dividendo es igual a 0, entonces se lanza una excepción de división por cero
throw ?new?ArithmeticException("¡¡¡captura la excepción de división por cero!!!");
}
double?d3?=?d1?/?d2;
System.out.println( "Resultado del cálculo:"?+?d1?+?"/"?+?d2?+?"="?+?d3);
///?div( );//Se puede volver a llamar al método div, ingresar nuevamente
}?catch?(ArithmeticException?exception)?{//Capturar la excepción de división por cero
Sistema .out.println(exception.getMessage()) ;//Imprime la información de la excepción
///?div();//Después de detectar la excepción, también puedes llamar al método div nuevamente e ingresar otra vez
}
}
//método getNum, usado para obtener un número
static?double?getNum(String?tips )?{
double?dnum ;//?Definir una variable decimal
while?(true)?{
¿probar?{
System.out.println(tips);// ?Mostrar texto de solicitud
String?s1?=?sc.nextLine() //Leer una línea de información de entrada
<; p> dnum?=?Double.parseDouble(s1); //Si la información de entrada se puede convertir en números, salga del bucle,//Si la información no se puede convertir en números , se informará una excepción de formato digital
break;// Salir del bucle
}?catch?(NumberFormatException?exception)?{//Captar la excepción de formato numérico
System.out.println("¡¡¡Se detectó la excepción de error de formato de número!!!" );//Solicitar texto y continuar con el bucle
}
} p>
return?dnum;//Número de retorno
}
}
Ejecute la prueba e ingrese el divisor
1.0
Ingresa el dividendo
¡¡Capta la excepción de división por cero!!!
Ingresa el divisor
1.0abc p>
¡¡¡Se detectó una excepción de error de formato de número!!!
Ingrese el divisor
1.0
Ingrese el dividendo
0.5
Resultado del cálculo: 1,0/0,5=2,0