Condicional if: opciones else, else if
Es muy habitual que nos interese considerar una alternativa si no se cumple la condición que hemos planteando en la sentencia if. Si es verdadera esa condición, se ejecutan una o varias instrucciones determinadas, pero si no, se ejecutan otras diferentes. de forma que el programa puede bifurcarse por dos ‘caminos’ distintos. Veámoslo con un ejemplo:
Imagínate que el anterior código es un código promocional que además de servir como descuento, da derecho exclusivo a comprar por la web. El que no lo tiene, no puede hacerlo y debe adquirir la entrada en taquilla. En este caso es más útil usar la sentencia ‘if/else’ de la siguiente forma:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<script> var PVP= 50; var descuento = 0; var precioFinal; var codPromocion = prompt("Si tienes un código para comprar en la Web con descuento especial, escríbelo aquí: "); if (codPromocion == "Spring7864") { descuento = 15; precioFinal = PVP - descuento; document.write("Precio= " + precioFinal + " €"); } else { document.write("Lo sentimos, pero debes adquirir tu entrada en taquilla. Precio: " + PVP + " €"); } </script> |
Ahora bien, las alternativas pueden ser una sola o varias, es decir, que nos puede interesar desdoblar ese camino o flujo del programa por varias rutas distintas.
Imaginemos que hemos creado dos códigos: uno es el de la anterior promoción que da derecho a comprar por la Web con descuento de 15€, y otro (10Web) que ofrece un descuento de 10 € por la Web. El que no tiene ninguno de los dos tendrá que adquirir la entrada en taquilla. Para ello utilizaremos la sentencia ‘if /else if /else’ de la siguiente forma:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<script> var PVP= 50; var descuento = 0; var precioFinal; var codPromocion = prompt("Si tienes un código para comprar en la Web con descuento especial, escríbelo aquí: "); if (codPromocion == "Spring7864") { descuento = 15; precioFinal = PVP - descuento; document.write("Precio= " + precioFinal + " €"); } else if (codPromocion == "10Web") { descuento = 10; precioFinal = PVP - descuento; document.write("Precio= " + precioFinal + " €"); } else { document.write("Lo sentimos, pero debes adquirir tu entrada en taquilla. Precio: " + PVP + " €"); } </script> |
Podríamos generar más códigos promocionales con ofertas diferentes. Para ello, podríamos incluir más ‘else if‘ que contemplaran esas nuevas condiciones/instrucciones , o bien emplear la sentencia ‘switch/case‘ que vamos a describir en el siguiente apartado.