Try-catch y do-while
Publicado por Nicolás Esteban (7 intervenciones) el 06/01/2020 01:54:10
Hola. Soy muy nuevo programando, por lo que quizás parezca una pregunta algo tonta.
Quiero saber como hacer para que cuando se ingresan datos por el Scanner y el carácter no es un número, se pidan los datos nuevamente. Estuve viendo algunos tutoriales en internet, pero sigo sin poder lograrlo. Este es el código:
----------------------------------------------------------------------------------------------------------------------------------------------------
Cuando ingreso números que no son 1 o 2, anda perfecto, aparece el mensaje de "Ingrese un número válido" y vuelve a pedir los datos. El problema es cuando ingreso un carácter que no es un número, en este caso, se queda haciendo un bucle infinito de esta manera:
Indique la operación que desea realizar
1. Suma
2. Resta
Debe ingresar un número
Indique la operación que desea realizar
1. Suma
2. Resta
Debe ingresar un número
Indique la operación que desea realizar
1. Suma
2. Resta
Debe ingresar un número
-------------------------------------------------------------------------------------------------------------------------------------------------------
Espero que puedan ayudarme. Desde ya muchas gracias.
Quiero saber como hacer para que cuando se ingresan datos por el Scanner y el carácter no es un número, se pidan los datos nuevamente. Estuve viendo algunos tutoriales en internet, pero sigo sin poder lograrlo. Este es el código:
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
import java.util.InputMismatchException;
import java.util.Scanner;
public class Inicio {
Scanner entrada = new Scanner(System.in);
private int tipoOperacion;
boolean inputError = false;
public void IngresoDatos() {
do {
try {
inputError = false;
System.out.println("Indique la operación que desea realizar");
System.out.println(" 1. Suma");
System.out.println(" 2. Resta");
tipoOperacion = entrada.nextInt();
if (tipoOperacion != 1 && tipoOperacion != 2) {
System.out.println("Ingrese un número válido");
inputError = true;
}
} catch (InputMismatchException e) {
System.out.println("Debe ingresar un número");
inputError = true;
}
} while (inputError == true);
}
}
Cuando ingreso números que no son 1 o 2, anda perfecto, aparece el mensaje de "Ingrese un número válido" y vuelve a pedir los datos. El problema es cuando ingreso un carácter que no es un número, en este caso, se queda haciendo un bucle infinito de esta manera:
Indique la operación que desea realizar
1. Suma
2. Resta
Debe ingresar un número
Indique la operación que desea realizar
1. Suma
2. Resta
Debe ingresar un número
Indique la operación que desea realizar
1. Suma
2. Resta
Debe ingresar un número
-------------------------------------------------------------------------------------------------------------------------------------------------------
Espero que puedan ayudarme. Desde ya muchas gracias.
Valora esta pregunta


0