Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/06/2015, 09:19
Avatar de Doommarine_Maxi
Doommarine_Maxi
 
Fecha de Ingreso: febrero-2011
Mensajes: 54
Antigüedad: 13 años, 2 meses
Puntos: 8
continue vs if en un loop

Una consulta a todos, para muchos están mal visto los breaks y continue, (aunque la mayoría coincidimos que si son innecesarios los go to) pero yo siempre uso los continue o break para sentencias como estas:

Codigo A
Código C:
Ver original
  1. ...
  2. ...
  3. for (int i=0: i < max; i++)
  4. {
  5.         if (myArray[i] != VALOR_DESEADO)
  6.              continue;
  7.  
  8.              //Todo lo que se vaya a ejecutar en el bucle.
  9. }
  10. ...

Uso siempre la "técnica" de arriba en vez de esta:

Codigo B
Código C:
Ver original
  1. ...
  2. ...
  3. for (int i=0: i < max; i++)
  4. {
  5.         if (myArray[i] == VALOR_DESEADO)
  6.         {
  7.              //Todo lo que se vaya a ejecutar en el bucle.
  8.          }
  9. }
  10. ...
  11. ...

Similar con break, por ejemplo deseo encontrar un valor especifico en el array, que se ejecute cierto codigo una unica vez y terminar con el bucle.

Codigo C
Código C:
Ver original
  1. ...
  2. ...
  3. for (int i=0: i < max; i++)
  4. {
  5.        if (condicion especifica)
  6.        {
  7.         //Todo lo que se vaya a ejecutar en el bucle, una sola vez.
  8.          break;
  9.        }
  10. }
  11. ...
  12. ...
Uso siempre la sentencia

Codigo D
Código C:
Ver original
  1. ...
  2. ...
  3. for (int i=0: i < max; i++)
  4. {
  5.        if (condicion especifica)
  6.        {
  7.         //Todo lo que se vaya a ejecutar en el bucle, una sola vez.
  8.          i=max;
  9.        }
  10. }
  11. ...
  12. ...

Ahora la pregunta para todos es, Entre Codigo A y Codigo B, ¿Cual es la mejor manera de escribir el codigo?, lo mismo con Codigo C y Codigo D

PD: Aclaro que este post esta en el foro de C como podría estar en cualquier otro lugar, tal vez el mejor lugar era la sección (si es que hay) de algoritmos o programación estructurada en general del foro. De hecho hace ya tiempo no toco código en C.

Última edición por Doommarine_Maxi; 15/06/2015 a las 09:21 Razón: Aclaración extra