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.