Está en la página 1de 5

Condicionales

Si termino en tiempo y forma esta página, tendré un 10 en mi clase de programación,


sino, tendré que cambiar de carrera.

Un condicional en la programación es una sentencia o grupo de sentencias que puede


ejecutarse o no en función del valor de una condición. Las condicionales son piezas clave
a la hora de realizar un programa, son quienes definen cuándo y cómo se ejecutarán los
eventos; valiéndose de las variables obviamente.

¿QUÉ PASARÁ CUANDO EL NÚMERO DE LA IMAGEN LLEGUE A 0?

 La imagen fue extraída del videojuego de «New Super Mario Bros U«, ese número
representa el número de vidas. Cada vez que el jugador pierda, se le restará -1. Cuando
ese contador llegue a «00». El juego terminará. ¿Cómo sería esto en un código?
1 if (vidas == 0)
2 {
3 GameOver();
}
4
Este código tiene 3 compuestos:

 La palabra reservada «If». La cuál le dice al programa que un evento debe ser ejecutado,
pero sólo si cierta condición se cumple.
 Una condición declarada dentro de un (paréntesis). En este caso, se le dice al programa
que si el jugador, tiene «00» vidas, entonces debe disparar el evento «Game Over».
 Una función llamada «GameOver()». Ahora mismo puede que no sepas qué son las
funciones, ya llegaremos a eso más tarde, o puedes ir a ver qué son ahora mismo
pulsando aquí, para fines prácticos, digamos que «Game Over()» te llevará a la pantalla
de título, reiniciará tu puntaje a «0» y empezarás desde el nivel 1.

Los tipos más conocidos de condicionales son el SI (IF) y el SEGÚN (case o switch),
aunque también podríamos mencionar al lanzamiento de errores como una alternativa
más moderna para evitar el «anidamiento» de condicionales.

Regresemos a la imagen; observa lo que hay arriba del número de vidas. Se trata del
nombre del nivel. Supongamos que alrededor del juego hay un total de 3 niveles, y
tenemos una variable Int llamada niveles, a la cuál iremos sumando +1 cada vez que se
complete un nivel. ¿Cómo sabríamos que niveles mostrar en pantalla? Sencillo, podemos
hacer uso del condicional «Switch«.
1
2 Switch (nivel)
3 {
case 1:
4 printf ("Nivel 1 \n Praderas champiñón");
5 break;
6
7 case 2:
8 printf ("Nivel 2 \n Lago champiñón")
break;
9
10
case 3:
11 printf ("Castillo de Peach \n La batalla Final");
12 break;
13 }
14

Como puedes ver, el «Switch» es bastante específico, tomará una decisión basada
únicamente basándose en un parámetro, en este caso ¿Qué nivel es?.

¿Y si necesito que más de 2 condiciones se cumplan?


¿Qué tal que quiero disparar un evento si al menos una de 3 condiciones se
cumplen?
¿Qué pasa si quiero que algo suceda cuando una condición NO se cumple?
En ese caso es necesario utilizar algo llamado «Operadores lógicos«.

Estos únicamente pueden ser usados en una sentencia «If». Como puedes ver, una
condición puede cumplirse de muchas maneras. Supongamos que en un videojuego hay
una misión a la que el jugador no puede acceder, a menos que este sea nivel 10 (o
mayor), o a menos que este posea una espada legendaria, esto en código se vería más o
menos así:
1 if (nivel >= 10 || Espada_Legendaria == true)
2 {
3 Acceso_Misión = true;
}
4

Si el jugador cumple con alguno de esos requisitos, la misión se desbloquea. Pero ¿Qué
pasaría si la misión solo es accesible si el jugador es nivel 10 Y tiene la espada
legendaria? El código entonces luciría más o menos así:
1 if (nivel <= 10 && Espada_Legendaria == true)
2 {
3 Acceso_Misión = true;
}
4
Si el jugador cumple con ambos requisitos, se le dará acceso a la misión, si uno de esos 2
no se cumple, la misión seguirá bloqueada. Ahora ¿Cómo sería si esta misión fuera un
reto que le exige al jugador, ser completada sin usar objetos legendarios?
1 if (Espada_Legendaria ¡= true)
2 {
3 Acceso_Misión = true;
}
4

La misión estará bloqueada mientras el jugador tenga equipada su espada legendaria,


cuándo este la des equipe, la misión será desbloqueada.

¿Se puede ser aún más específico?

Por supuesto que sí, permiteme presentarte a las «Condicionales anidadas»

Decimos que una estructura condicional es anidada cuando por la rama del verdadero o el
falso de una estructura condicional hay otra estructura condicional.

Supongamos que le ofreceremos un cono de nieve a un amigo nuestro, lo primero que


haremos será preguntarle si le gusta el helado. Si responde «No», entonces no le damos
helado; si responde «Sí», entonces le preguntaremos si le gusta el de chocolate. Si si
responde «Sí», le damos uno de chocolate; si responde «No», le damos uno de vainilla.

Los condicionales anidados son sumamente útiles, pero hay que tener mucho cuidado a la
hora de usarlos, la sobrecarga de condicionales en un programa puede resultar en un
código desordenado y sumamente difícil de entender, además de acarrear dificultades en
el futuro para agregar nuevas funciones a tu programa. Por ello es importante que sepas
cuándo y cómo usar las herramientas presentadas en esta sección.

También podría gustarte