Red de conocimiento informático - Aprendizaje de programación - 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

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

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

}

}

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

¡¡¡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