Java - Try Catch en un bucle.

 
Vista:
sin imagen de perfil

Try Catch en un bucle.

Publicado por Estefania (1 intervención) el 20/10/2016 10:09:58
Hola, alguien sería tan amable de ayudarme a encontrar el error en mi código, se supone que debe de repetir la opción de elegir el numero pero el error aparece infinitamente.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public int capturarNumFilas(){
	do{
 
		try{
			do{
				System.out.print("Ingresa el numero de filas:");
				elementos=sc.nextInt();
			}while (elementos<1 || elementos>50);
		}
		catch(Exception e){
			System.out.println("Introduciste un dato erroneo.");
		}
		error=true;
	}
	while(error=true);
 
	return elementos;
}
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 xve
Val: 686
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Try Catch en un bucle.

Publicado por xve (345 intervenciones) el 20/10/2016 11:59:37
Hola Estefania, tienes dos bucles que no es necesario... te he preparado un simple ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.*;
 
public class capturarNumFilas {
 
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int elementos=0;
		do{
			try{
				System.out.print("Ingresa el numero de filas:");
				elementos=sc.nextInt();
			}catch(Exception e){
				System.out.println("Introduciste un dato erroneo.");
				sc.nextLine();
			}
		}
		while(elementos<1 || elementos>50);
 
		System.out.println(elementos);
	}
}
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

Try Catch en un bucle.

Publicado por YYanes (144 intervenciones) el 20/10/2016 14:12:39
Hola Estefania:

independientemente del bucle innecesario (que nuestro amigo xve se ha encargado de resolver muy bien) tienes otro error en tu código con el que debes tener cuidado más adelante, y es el uso del operador "=" dentro de la condicional del while, me explico:

- El operador binario "=" se usa para realizar una asignación, por ejemplo:

int a = 1; // a la variable "a" le estás asignando valor 1 mediante el operador "="

int a = b; // a la variable "a" le estás asignando el valor de la variable "b".

- Por otra parte, el operador "==" es para comparar valores, es decir, devuelte "true" si se cumple la igualdad, y por supuesto "false" si no se cumple, por ejemplo:

if(a==1){ //devolverá true si "a" es igual a 1 y false en caso contrario;
}

if(a==b){ //devolverá true si "a" es igual a la variable "b" y false en caso contrario;
}

Entonces, teniendo en cuenta lo explicado anteriormente, decir "while(error=true)" es un error, pues lo que haces es asirnarle siempre el valor "true" a la variable "error"; en su lugar, debería ser while(error==true), con operador "==" que es de comparación.

Un GigaSaludo!!!
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