¿ Por que los return no deben encontrarse dentro de los bucles ?

Iniciado por arts, 24 Octubre 2013, 01:14 AM

0 Miembros y 1 Visitante están viendo este tema.

arts

Hola a todos de nuevo, xD.
Quería saber porque no es bueno utilizar return o break dentro de un bucle para salir de estos si ya has encontrado la letra, palabra dentro de una cadena por ejemplo, yo si lo encontraba devolvía el índice donde se había encontrado, de lo contrario devolvía -1 ya fuera del bucle y al corregirlo nos dicen que es una mala práctica de programación sin más explicación. ¿ Alguien sabe el por que ?. ¿ Es que antes no existían los return o break y por eso quieren que lo hagamos de otra forma ?.


arts

Si, pero esperaba alguna explicación tipo es que hace menos evaluaciones en el código mejorando su rapidez, o puede dar problemas si se usa x cosas también o algo, no un simple es mejor usar while(cond1 y cond2parasalir) porque si :/ .

visualfree

La respuesta se debe a que cada bucle tiene un "Fin" y no deberias forzar su termino, en definitiva estas rompiendo el para que fue creado.

Saluda Atte.


#!drvy

#4
No se si va asociado específicamente con Java o no.. pero romper un bucle no tiene nada de peligroso ni malo.... de hecho no se que tal estará en java, pero en PHP por ejemplo, si rompes el bucle porque no lo necesitas mas, evitas que se procese el resto de información, resultado en ahorrar recursos/procesador y tiempo.

Ahora si lo rompes para todo.. pues si es malo. Lo correcto seria romperlo solo cuando haga falta realmente.

Aquí tienes una respuesta (en ingles) asociada a java.
http://stackoverflow.com/questions/18188123/is-it-bad-practice-to-use-break-to-exit-a-loop-in-java

Si fuese mala practica.. no existira break... esta hecho precisamente para eso -_-
¿ Sabe tu profesor de lo que habla ?

Saludos

kaostias

El problema de los break es que en ocasiones hacen mucho más compleja la lectura del código, y el código tiene que ser escrito para que sea óptimo, pero también para que sea leído
- ¡Éste código sin documentar es un galimatías!
- Es tuyo, de hace 3 semanas
- ¡Es una obra maestra aunque esté sin documentar! ¿Qué decías que hace?

Mitsu

Que yo tenga entendido, return se usa para indicar la salida de un metodo no de un loop. Para un loop se usa break.

Ejemplo:

Código (=java) [Seleccionar]

public class Hola {

public void algo() {
for (int i=0; i<5; i++) {
if(i==3){
return;
}
}
System.out.println("Yo no me ejecuto.");
}

public static void main(String... args){
new Hola().algo();
}
}

arts

Vale ahora lo entiendo, es un tema más bien que hace referencia a la legibilidad y coherencia de las estructuras. Lo que me hace pensar que un for está hecho para ir desde el principio hasta el final y while para recorrer desde el principio y condición que permita salir antes de llegar al final.
Ok gracias ;) por cierto creo que estoy aprendiendo aquí por el foro más que en clases xD.

robertofd1995

Cita de: NullPointerException en 24 Octubre 2013, 19:52 PM
Que yo tenga entendido, return se usa para indicar la salida de un metodo no de un loop. Para un loop se usa break.

Ejemplo:

Código (=java) [Seleccionar]

public class Hola {

public void algo() {
for (int i=0; i<5; i++) {
if(i==3){
return;
}
}
System.out.println("Yo no me ejecuto.");
}

public static void main(String... args){
new Hola().algo();
}
}


rdyoy aprendiendo programacion , estoy en primero de carrera , no se si es porq es un ejemplo , o por que es asi , pero no te faltaria declarar i , ya fuese como atributo , o como una variable local , que significa i++ ?

тαптяα

Incrementa el valor de i, a posteriori.

Seria como hacer i = i +1;