Título: Programa no entra a ciclo for Publicado por: edr89 en 6 Junio 2015, 22:17 pm Hola a todos tengo dos ciclos anidados pero al compilar, el ciclo con el indice j no lo esta ejecutando. Error es una variable booleana y mientras la matricula coincida con otro registro sera true.
Lo mas extraño de todo es que sí permite ingresar la matricula pero nunca entra al ciclo. Estuve imprimiendo las variables e incluso mensajes aleatorios para ver hasta donde sí corre el programa y el ciclo for con índice j nunca lo hace. Me podrian dar alguna pista?? :huh: Código
Título: Re: Programa no entra a ciclo for Publicado por: Baal_30 en 6 Junio 2015, 22:26 pm Hombre, pues supongo que será porque la condición del segundo for es que j sea menor que i-1. Cuando entra por primera vez al primer for, i vale 0, al entrar al for anidado, sigue valiendo lo mismo, y le estás diciendo que ese for se ejecute mientras j (que inicializas a 0) sea menos que i (0) - 1, así que no entrará nunca.
Título: Re: Programa no entra a ciclo for Publicado por: edr89 en 6 Junio 2015, 22:44 pm Hombre, pues supongo que será porque la condición del segundo for es que j sea menor que i-1. Cuando entra por primera vez al primer for, i vale 0, al entrar al for anidado, sigue valiendo lo mismo, y le estás diciendo que ese for se ejecute mientras j (que inicializas a 0) sea menos que i (0) - 1, así que no entrará nunca. Exacto esa es la intencion, cuando i=0 significa que es el primer dato registrado por lo tanto no hay nada que validar y no entra al ciclio pero cuando estoy registrando el tercero o enesimo automovil entonces: i=3, j=0, condicion j < (3-1), por lo tanto deberia entrar al ciclo sin embargo no lo hace :-\ Título: Re: Programa no entra a ciclo for Publicado por: Baal_30 en 6 Junio 2015, 23:55 pm Pues no se, lo de j = i dentro del if es para que cuando entre al if no siga en el for ¿? Por que si es así puedes utilizar un break;
¿O para que lo utilizas? Título: Re: Programa no entra a ciclo for Publicado por: edr89 en 7 Junio 2015, 00:06 am Si, lo uso para salir del ciclo, siempre uso break cuando implemento un switch pero no en for., tambien es valido?
Ayer estuve haciendo pruebas y pensaba que el error estaba en la condicion if, son equivalentes las siguientes expresiones? Código
Primero intente con == pero netbeans me daba advertencias y decia que usara equals. El metodo toString() solo regresa la matricula. Título: Re: Programa no entra a ciclo for Publicado por: Baal_30 en 7 Junio 2015, 03:18 am El problema es que con == no puedes comparar Strings...
Pero para estar más seguro puedes hacer Código
Título: Re: Programa no entra a ciclo for Publicado por: edr89 en 7 Junio 2015, 08:41 am Sí! encontré la respuesta en Naughton Patrick (1996), The Java Handbook, pág 154
El error esta en que las funciones equals y equalsIgnoreCase regresan true si el parametro tiene los mismos caracteres que el objeto al que llama el método. Hay un ejemplo clave que explica la igualdad == y el método equals(): Código Como los dos strings representan dos objetos distintos la referencia de las variables no son las mismas y por lo tanto la igualdad == regresa falso El método EqualsIgnoreCase es mucho mejor para este caso. Código
|