Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • por pobrecito hablador el Lunes, 17 Enero de 2011, 12:25h (#1261104)
    ;Estoy en desacuerdo contigo ;Al final todo son etiquetas y saltos...
    ;
    START:
            MOV R1,USUARIO
            MOV R2,TROLL
            CJNE R2,R1,EXIT
            GOTO START
    EXIT:
    [ Padre ]
  • por pobrecito hablador el Lunes, 17 Enero de 2011, 13:21h (#1261112)

    La ventajas de utilizar un switch frente a un if-else son las optimizaciones que puede aplicar el compilador.

    El caso mas sencillo, en el que las constantes son proximas (por ejemplo, casos de la 'a' a la 'z'), es utilizar una tabla con las direcciones de cada salto (de manera que se ejecuta algo asi como table[c - 'a']();). Esto se traduce en un mejor rendimiento si por ejemplo el valor de c fuera 'z', ya que en el caso de un if-else tendrian que evaluarse todas las condiciones ( c == 'a', c == 'b', etc...)

    [ Padre ]
  • Re:Strings in switch statements

    (Puntos:1, Informativo)
    por pobrecito hablador el Lunes, 17 Enero de 2011, 13:57h (#1261117)
    "Es que ES un if-else-else, igual que un for es lo mismo que un while."

    No exactamente.

    Por un lado, sí es más inteligible ("mapea" mejor a un esquema mental de "multiple choice"). Por otro, no siempre es igual a un if-else-else debido a la opcionalidad del "break" que permite entrada condicional dentro de una cascada de acciones:
    switch:
      case 1:
        dosomething;
      break;
      case 2:
        dosomething;
      case 3:
        dosomething;
      break;
      default:
        dosomething;

    Como se ve, entrar en el caso 2 ejecutará 2 *y* 3 "en cascada". Hacerlo mediante sentencias if-else-else sería considerablemente más oscuro.
    [ Padre ]