¿Cuál es la diferencia entre IF-ELSE y SWITCH?

¿Alguien puede explicarme esto?

Son bastante similares, pero cada uno tiene algunas características especiales.

cambiar

  • switch suele ser más compacto que muchos nesteds if else y, por if else tanto, más legible
  • Si omite la break entre dos cajas de interruptores, puede pasar al siguiente caso en muchos lenguajes tipo C. De if else , necesitarías un goto (que no es muy agradable para tus lectores … si el lenguaje admite goto en absoluto).
  • En la mayoría de los lenguajes, el switch solo acepta tipos primitivos como clave y constantes como casos. Esto significa que puede ser optimizado por el comstackdor usando una tabla de salto que es muy rápida.
  • No está claro cómo formatear el switch correctamente. Semánticamente, los casos son objectives de salto (como tags para goto ) que deben irse a la izquierda. Las cosas empeoran cuando tienes llaves:

     case XXX: { } break; 

    ¿O deberían las llaves entrar en sus propias líneas? ¿Debe el corsé de cierre ir detrás del break ? ¿Qué tan ilegible sería eso? etc.

  • En muchos idiomas, switch solo acepta algunos tipos de datos.

if-else

  • if permite expresiones complejas en la condición mientras el interruptor quiere una constante
  • No puedes olvidar accidentalmente la break entre if pero puedes olvidar lo else (especialmente durante la pasta cortada)
  • acepta todos los tipos de datos.

La principal diferencia es que el switch envía inmediatamente al case cuestión, generalmente a través de un salto indexado, en lugar de tener que evaluar todas las condiciones que se requerirían en una cadena if-else , lo que significa que se alcanza el código al final de la cadena más lento que el código al principio.

Esto, a su vez, impone algunas restricciones en la statement de switch que la cadena if-else no tiene: no puede manejar todos los tipos de datos, y todos los valores de los case deben ser constantes.

Diferencias entre if-else y switch

  1. La expresión dentro de la instrucción if decide si se ejecutan las instrucciones dentro de si block o under else block. Por otro lado, la expresión dentro de la sentencia switch decide qué caso ejecutar.

  2. La instrucción If-esle comprueba la igualdad y la expresión lógica. Por otro lado, cambie las verificaciones solo por igualdad.

  3. La instrucción if evalúa entero, carácter, puntero o tipo de punto flotante o tipo booleano. Por otro lado, la statement de cambio evalúa solo el carácter o un tipo de datos entero.

  4. La secuencia de ejecución es como una instrucción debajo de si el bloque se ejecutará o se ejecutarán las sentencias en otra instrucción de bloque. Por otro lado, la expresión en la sentencia switch decide qué caso ejecutar y, si no aplica una instrucción break después de cada caso, se ejecutará hasta el final de la instrucción switch.

  5. Si la expresión dentro si las salidas son falsas, se ejecutará la instrucción dentro del bloque else. Si la expresión dentro de la instrucción switch resulta ser falsa, se ejecutan las declaraciones predeterminadas.

  6. Es difícil editar sentencias if-else, ya que es tedioso rastrear dónde se requiere la corrección. Por otro lado, es fácil editar instrucciones de cambio ya que son fáciles de rastrear.

en una palabra, podemos decir que el cambio actúa un poco más rápido que si fuera una statement.

Si no, IT se usa para tomar decisiones

Declaración de cambio: se usa para probar el valor de la variable dada con una lista de valor de caso.

La diferencia entre Switch y if-else es la siguiente:

Esta es la syntax general de if-else ladder: if (condition1) {// Body of if}

 else if (condition2) { //Body of if } else if (condition3) { //Body of if } 

Y esta es la syntax general para el cambio:

 switch ( variable ) { case : //Do Something break; case ://Do Something break; default: //Do Something break; } 

La escalera if-else es de tipo verificación de condición estricta, mientras que el interruptor es de tipo captura de valor de salto.

Ventajas del cambio de escalera if-else:

  • Una instrucción switch funciona mucho más rápido que la escalera if-else equivalente. Es porque el comstackdor genera una tabla de salto para un cambio durante la comstackción. En consecuencia, durante la ejecución, en lugar de verificar qué caso se satisface, solo decide qué caso se debe ejecutar.
  • Es más legible y en comparación con las declaraciones if-else.

Creo que la principal diferencia es que en los bloques if-else podemos probar las condiciones. Pero no va exactamente de la misma manera en el cambio.