Java - Consulta Java Validación números

 
Vista:
sin imagen de perfil

Consulta Java Validación números

Publicado por Jose (1 intervención) el 22/08/2021 02:02:03
Mis respetos a todos. Me dieron el siguiente enunciado en la empresa, necesito saber sus opiniones y recomendaciones sobre el código. Añado el enunciado y el código que escribí. Saludos a todos.

/*- Realizar un programa Java que ingrese 1 número por teclado,
desplegando de la siguiente forma “Ingrese número, debe ser >= 0 y <= 10, o 99 para Salir: ”
- Validar:
o El número ingresado debe ser >= 0 y <= 10
 Si el número ingresado es < 0 desplegar ‘numero incorrecto < a 0’
 Si el número ingresado es > 10 desplegar ‘numero incorrecto > a 10’
o Desplegar según el número ingresado:
 Si el número ingresado es 0 desplegar ‘NUMERO 0’
 Si el número ingresado es 1 desplegar ‘NUMERO 1’
 … hasta 10
Si el número ingresado es 99: desplegar ‘FIN’ y SALIR*/


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package Numero;
 
import java.util.Scanner;
public class Numero {
    public static void main(String[] args) {
    int nro;
    Scanner sc = new Scanner(System.in);
    nro = sc.nextInt();
    if (nro < 0) {
    System.out.println("numero incorrecto < a 0");
 
 
    if (nro >10) {
 
    System.out.println("numero incorrecto > a 10");
    if (nro == 0){
    System.out.println("NUMERO 0");
 
     if  (nro==1) {
    System.out.println("NUMERO 1");
     if  (nro==2) {
    System.out.println("NUMERO 2");
 
     if  (nro==3) {
    System.out.println("NUMERO 3");
     if  (nro==4){
    System.out.println("NUMERO 4");
     if  (nro==5){
    System.out.println("NUMERO 5");
     if  (nro==6){
    System.out.println("NUMERO 6");
     if  (nro==7){
    System.out.println("NUMERO 7");
     if  (nro==8){
    System.out.println("NUMERO 8");
    if  (nro==9){
    System.out.println("NUMERO 9");
    if  (nro==10){
    System.out.println("NUMERO 10");
    if (nro==99);
    System.out.println("FIN SALIR");
    }
    }
    }
    }
        }
        }
        }
        }
        }
        }
        }
        }
        }
    }
    }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Consulta Java Validación números

Publicado por Kabuto (1044 intervenciones) el 22/08/2021 12:27:50
Hola, el código es mejorable.

Fíjate que si el número está dentro de los límites aceptables, simplemente hay que mostrar el número introducido, así que no necesitas hacer un if por cada número valido.

Además, si dicen que hay que introducir el 99 para salir..., se intuye que todo el proceso se va a realizar dentro de un bucle que se repetirá hasta que se teclee ese valor 99.

Te dejo un ejemplo.
Dentro de bucle, fíjate que primero descarto los "casos especiales".
Si es 99, muestro mensaje de FIN;
si no, si es menor que 0, muestro mensaje que es menor que 0;
si no, si es mayor que 10, muestro mensaje que es mayor que 10
si no, si no se cumple ninguna de las condiciones anteriores, entonces es que el número es correcto
pues entonces simplemente muestro el número que he recogido en la variable. No necesito preguntar que número es.

Seguro que leyendo el código, entiendes mejor la lógica que he seguido:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public static void main(String[] args) {
 
	    Scanner sc = new Scanner(System.in);
	    int nro = 0;
 
	    while (nro != 99) {
	    	//Pedimos numero
	    	System.out.print("\nIntroduzca número: ");
		    nro = sc.nextInt();
	    	//Evaluamos
		    if (nro == 99)
		    	System.out.println("FIN");
		    else if (nro > 10)
		    	System.out.println("numero incorrecto > a 10");
		    else if (nro < 0)
		    	System.out.println("Numero incorrecto < a 0");
		    else //No es 99 y está dentro de los límites correctos, solo hay que mostrarlo
		    	System.out.println("NUMERO " + nro);
	    }
 
	    sc.close();
	}

Si lo ejecutamos, veremos que en pantalla se repite el proceso, evaluando valores correctamente, hasta que se introduce el 99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Introduzca número: -9
Numero incorrecto < a 0
 
Introduzca número: 12
numero incorrecto > a 10
 
Introduzca número: 4
NUMERO 4
 
Introduzca número: 5
NUMERO 5
 
Introduzca número: 7
NUMERO 7
 
Introduzca número: 9
NUMERO 9
 
Introduzca número: 99
FIN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar