En este apartado voy a hablar sobre las sentencias selectivas, es decir, aquellas que dependiendo del cumplimiento o incumplimiento de una condición ejecutan distintas secuencias de sentencias.
En C++ existen dos únicas formas de elección: IF y SWITCH
Función If:
Esta sentencia puede englobar varias sentencias adicionales (situadas entre corchetes) que únicamente se ejecutaran en el caso de que se cumpla la condición entre paréntesis. AdemÔs, de forma complementaria a esta función, se puede utilizar else y else if.
- Else if: esta función se coloca tras una función if ya existente y actĆŗa de la misma forma que lo harĆa un segundo if, con la Ćŗnica diferencia de que solo se ejecuta en el caso de que el if o else if anterior no se haya cumplido.
- Else: esta es la Ćŗnica función de las tres mencionadas hasta ahora en la que no es necesario introducir una condición para que se ejecuten las sentencias que engloba. Esto se debe a que solo surtirĆ” efecto en el caso de que el if y los posibles else if que lo preceden no se hayan ejecutado debido a que sus condiciones no se cumplĆan.
En este ejemplo a continuación se puede apreciar mÔs claramente el funcionamiento de estas tres sentencias:
1. Ā Ā bool lluvia;
2. Ā Ā bool nieve;
3. Ā Ā if (lluvia == true) { printf ("EstĆ” lloviendo"); }
4. Ā Ā else if (nieve == true) { printf ("EstĆ” nevando"); }
5. Ā Ā else { printf ("No estĆ” lloviendo ni nevando"); }
Para empezar, en la lĆnea 3, tenemos un if que se encarga de avisar de que estĆ” lloviendo, en el caso de que la variable lluvia estĆ© activada (tenga valor true). Aunque no es necesario conocerlo todavĆa, a función printf nos permite escribir en una consola en pantalla.
DespuĆ©s, en la lĆnea siguiente, tenemos un else if, que avisarĆ” de que estĆ” nevando, en el caso de que no se halla cumplido el if anterior (el de la lluvia) y que la variable "nieve" tenga el valor true.
Para terminar, en la quinta lĆnea, nos encontramos con un else, el cual solo entrarĆ” en acción en el caso de que no se cumplan las condiciones del if ni de ninguno de los else if (en este caso solo uno) que se encuentren justo antes que Ć©l.
Función Switch:
Esta sentencia selectiva se utiliza menos que if, pero tiene, sin embargo, una gran utilidad en casos en los que deseamos establecer distintas secuencias de sentencias, que se ejecuten dependiendo del valor numérico de una única variable. Para ello, entre el primer par de paréntesis ponemos la variable cuyo valor vamos a estudiar, mientras que dentro de las llaves situadas a continuación, se sitúan los distintos casos que deseamos reconocer. Cada uno de estos casos se expresa escribiendo la subfunción case, que posteriormente cerraremos escribiendo la sentencia break.
En el siguiente ejemplo se pueden ver todos estos elementos:
1. Ā Ā int meh;
2. Ā Ā switch (meh) {
3. Ā Ā Ā Ā Ā case 5:
4. Ā Ā Ā Ā Ā Ā Ā Ā printf ("meh vale 5");
5. Ā Ā Ā Ā Ā Ā Ā Ā break;
6. Ā Ā Ā Ā Ā case 666:
7.Ā Ā Ā Ā Ā Ā Ā Ā Ā printf ("meh vale 666");
8.Ā Ā Ā Ā Ā Ā Ā Ā Ā break;
9.Ā Ā Ā }
En la primera lĆnea he declarado la variable meh, para usarla en el switch de la lĆnea siguiente. En este, como dije antes, he aclarado cual es la variable que estamos estudiando entre parĆ©ntesis, para luego poner entre las llaves los distintos casos en los que el switch debe actuar en consecuencia del valor de meh. Para hacer esto Ćŗltimo, se escribe la función case y a continuación el valor que debe tener la variable para que se ejecuten las sentencias indicadas en las lineas posteriores a los dos puntos ( : ). Es importante recordar que debemos indicar hasta donde llegan las sentencias incluidas por este "caso", ya que en caso contrario, continuarĆ” ejecutando las siguientes secuencias hasta llegar a un break o llegar a la llave de cierre de l switch.