Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/08/2013, 08:30
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Transformar IFs anidados en SWITCH-CASE

Transformar IFs anidados en SWITCH .. CASE por claridad:

La duda es casi como "ser o no ser" .. sera que si ?

Hace años que me debato entre hacer transformaciones rapidas que me permitan trabajar anidamientos de IF de forma lineal con SWITCH-CASE, esta muy mal ? :)

Ejemplo...

Código PHP:
Ver original
  1. if ($condA)
  2.         if (condB)
  3.             return fAB();
  4.         else
  5.             return fAnoB();
  6.     else
  7.         if (condB)
  8.             return fnoAB();
  9.         else
  10.             return fnoAnoB();

Transformacion ...


Código PHP:
Ver original
  1. switch ($condA*10 + condB)
  2. {
  3.     case (11): return fAB();
  4.     case (10): return fAnoB();
  5.     case (01): return fnoAB();
  6.     case (00): return fnoAnoB();
  7. }


Otra posible transformacion ...


Código PHP:
Ver original
  1. switch ($condA*2 + condB)
  2. {
  3.     case (3): return fAB();
  4.     case (2): return fAnoB();
  5.     case (1): return fnoAB();
  6.     case (0): return fnoAnoB();
  7. }


En general puedo pasar algo N-dimensional a uni-dimensional con este tipo de transformaciones con un costo muy pequeño en tiempo de ejecucion.

PD: es un ejemplo... logicamente no tienen porque ser "returns" en los CASEs
__________________
Salu2!