Cita:
Iniciado por gswarlus ...estás obviando un pequeño detalle.. si yo pongo el índice en i = 32 es EXACTAMENTE un corte brusco.. ídem estaría produciendo el break. En tales casos, puede ser que ninguno de los dos llegue nunca a completar 32 ciclos.
Bueno, es que poner el indice a 32 para salir de forma brusca es algo que tampoco se debería hacer
.
Cita:
Iniciado por gswarlus Pero no hablemos de ciclos repetidos mediante condiciones de índice.. hablemos por ejemplo de lo siguiente:
Código:
while (nodo != null) {
if (nodo.getDato().equals(datoEntrada)
nodo = nodo.getEnlace();
else
nodo = null;
}
Comparémoslo con el siguiente (OJO! Son todas pequeñas cosas que se me van ocurriendo, debido a programas que he hecho en el pasado, no es que sean exactamente los mismos casos :D):
Código:
while (nodo != null) {
if (nodo.getDato().equals(datoEntrada)
nodo = nodo.getEnlace();
else
break;
}
¿Me entendés a lo que voy? Para mí es más legible.
En realidad no lo es, ya que en el primero la salida se produce al fallar la condición de salida del while, alto nivel, y en el segundo caso la salida se puede producir en cualquier punto dentro del while por que cortas el flujo y le obligas a salir. Si sales con un break... ¿al acabar el while puedes asegurar que nodo es null? No. Entonces no es más claro.
Cita:
Iniciado por gswarlus (sea código mío o de otro: otro dato, NUNCA vi un código (de Java) tan prolijo como el mío, en indentación y cierta documentación y coherencia) ver un "break" a forzar una salida del tipo anterior (primer ejemplo).
Una nunca puede ser juez de su propio codigo ya que encaja con el esquema mental de uno mismo y todo es "natural, lógico y clarísimo". En palabras de algunos expertos en programación: "programa como si el que tuviera que mantener tu código fuera un maníaco asesino que sabe donde vives".
Cita:
Iniciado por gswarlus Aunque son formas y formas, jeje.. te aseguro que mi código lo entendería cualquiera! Por esto de la prolijidad y demás.. :D
Por supuesto, es cuestión de forma y no tienes por que hacerles ningún caso. Pero estas cosas no se las sacan los expertos en programación de la manga, si no que son producto de la experiencia de años. Y es difícil de entender si tus programas sólo los ves tú y són para clase, pero en una empresa te asegura que las probabilidades de que usar breaks dé problemas al que viene detrás es muchísimo más alta que si no los usas.
Por poner un ejemplo, ahora mismo están pensando añadir closures a Java y lo primero que han descartado es permitir que un return/break dentro de una closure produzca una salida del método o estructura de control que llama a la closure... precisamente para evitar que se puedan usar como tu dices.
Pero bueno, tampoco te caera un rayo si los usas... al menos después de haber aprobado esa asignatura