1.6 - Instrucciones de selección: if

Hasta ahora, las instrucciones que vimos eran instrucciones que se ejecutaban siempre en el orden en el que figuraban en el programa, una después de la otra. Por eso se llaman instrucciones de secuencia: No hay forma de evitar que se ejecuten ni de modificar el orden en que lo hacen.
Ahora vamos a ver la instrucción if, que permite decidir si ejecutar o no otras instrucciones. Por ello a las instrucciones con esta posibilidad se las llama instrucciones de selección o decisión.

El formato de la instrucción es:

if (condición)
     {
      .... (Otras instrucciones 1)....
     }
else
     {
      .... (Otras instrucciones 2)....
     };

La condición es una expresión lógica, cuyo valor puede ser verdadero o falso. Si dicho valor es verdadero, se ejecuta el conjunto de instrucciones que están a continuación del if (Otras instrucciones 1). Si el valor de la condición es falso, se ejecuta el conjunto de instrucciones que están a continuación del else (otras instrucciones 2). De manera que se ejecuta uno de los dos bloques de instrucciones, según el valor de la condición, pero en ningún caso se ejecutarán ambos bloques.

Veamos el siguiente ejemplo:
 
 // ejemplo3.cpp: Instrucción if
#include "stdafx.h"
#include <iostream>
using namespace std;

void main()
{
    int nota;
    cout << "Ingrese la nota:";
    cin >> nota;
    if (nota >= 4)
    {
        cout << "Aprobado, felicitaciones!"<<endl;
    }
    else
    {
        cout << "No aprobado."<<endl;
    };
    cout <<"Gracias por participar. Fin del programa.";

    cin>>nota; // Sólo para evitar que cierre la ventana demasiado rápido
}


El comienzo del programa es similar a los ya vistos: Solicita un valor al usuario y lo guarda en la variable entera nota. Luego, llegamos a la instrucción if.

La instrucción if analiza la condición que se encuentra entre paréntesis (nota>=4). Como tiene una variable, busca el contenido de dicha variable en la memoria (El valor que ingresó el usuario) y lo compara con 4. Si es mayor o igual, el resultado de la condición es verdadero y se ejecuta la instrucción cout que está a continuación del if. Si el valor ingresado por el usuario es menor que 4, el resultado de la condición es falso, y se ejecuta la instrucción que está a continuación del else.
Luego de ejecutar la instrucción que corresponda, según el valor de la condición, el programa continúa normalmente con la instrucción siguiente al if:
       cout <<"Gracias por participar. Fin del programa.";

Se debe tener en cuenta el formato de la instrucción if, que debe cumplir ciertas reglas:
- La condición va siempre entre paréntesis, y no se debe colocar punto y coma luego de la misma.
- Luego, entre llaves, las instrucciones que se ejecutan si la condición es verdadera. No se debe colocar punto y coma luego de cerrar la llave. Si se coloca punto y coma aquí o luego de la condición, el programa considerará que aquí termina la instrucción if, y no sabrá interpretar el else.
- Por último, la palabra else y, también entre llaves, las instrucciones que se ejecutarán si la condición es falsa. Luego de esta llave sí se coloca el punto y coma, que indica el final de la instrucción if.
- Si dentro de las llaves hay una sóla instrucción (como en este ejemplo) pueden omitirse dichas llaves, aunque muchas veces sea conveniente dejarlas para dar mayor claridad al programa. Si hay dos o más instrucciones, las llaves son obligatorias.
- A veces, no hay instrucciones para ejecutar si la condición es falsa. En ese caso, se omite también la palabra else. Quedará un if sin else:

if (condición)
     {
      ...
     };

En este caso sí va el punto y coma luego de la llave del if, precisamente para indicar que allí termina la instrucción y que no hay else.
- Las instrucciones que van dentro de los bloques if o else, pueden ser cualquier tipo de instrucciones, incluso otras instrucciones if.
- Las diferentes condiciones que se pueden incluir en un if utilizarán operadores lógicos, que veremos a continuación.

No hay comentarios:

Publicar un comentario