Ver Mensaje Individual
  #10 (permalink)  
Antiguo 27/11/2009, 10:32
GreenEyed
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Respuesta: Excepción Null o NO ELIMINA

Cita:
Iniciado por gswarlus Ver Mensaje
...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 Ver Mensaje
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 Ver Mensaje
(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 Ver Mensaje
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
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.