Instrucción if

Hasta ahora has visto cómo hacer un programa que se ejecuta secuencialmente de una instrucción a la siguiente, sin posibilidad de variar lo que ocurre aparte de mostrar diferentes valores calculados a partir de la entrada por el usuario.

La instrucción if le permiten a tu código controlar si entra en una sección de código o no en función de si una condición dada es verdadera o falsa. En otras palabras, la sentencia if permite al programa seleccionar diferentes acciones basadas en la entrada del usuario. Por ejemplo, si utiliza una instrucción if para comprobar si un usuario ha introducido una contraseña correcta, su programa puede decidir si un usuario tiene acceso al programa.

 Sintaxis básica

if ( <condición o expresión verdadera> )
     //Ejecuta una sola instrucción

O

if ( <condición o expresión verdadera> )
{
      //Ejecuta un bloque de instrucciones por eso usa llaves
}

El código que sigue a la instrucción if (y que se ejecuta condicionalmente) se denomina cuerpo de la sentencia if  (al igual que el código de la función principal se denominó cuerpo de la función principal).

Aquí hay un ejemplo simple y tonto que muestra la sintaxis:

if ( 5 < 10 )
    cout << "5 es menor que 10, eso es una GRAN SORPRESA";

Aquí, sólo estamos evaluando la declaración, “es cinco menor que diez”, para ver si es cierto o no; Con suerte, no lo es! 🙂  Si lo deseas, puede escribir su propio programa completo incluyendo iostream y poner esto en la función principal y ejecutarlo para probarlo.

El siguiente ejemplo muestra el uso de llaves con para bloques de instrucciones:

if ( 5 < 10 )
{
   cout << "5 es menor que 10, eso es una GRAN SORPRESA"<<'\n';
   cout << "Espero que la computadora funcione bien"<<'\n';
}

Si tiene más de una línea después de una instrucción if, debe usar las llaves para asegurarse de que el bloque entero se ejecute. Es recomendable siempre poner las llaves en el cuerpo de la declaración if. Si haces esto, nunca tienes que recordar ponerlos cuando quieres que se ejecute más de una instrucción, y hace que el cuerpo de la declaración if sea más visualmente claro. Un error común es añadir una segunda instrucción al cuerpo de una instrucción if sin agregar las llaves, lo que hace que esa segunda instrucción se ejecute siempre.

Estos ejemplos que hemos visto hasta ahora son bastante aburridos; Echemos un vistazo a una sentencia real que funciona con la entrada del usuario.

#include <iostream>
using namespace std;
int main ()
{
   int x;
   cin >> x;
   if ( x < 10 )
   {
        cout << "El numero es menor que 10" << '\n';
   }
}

Este programa difiere de los ejemplos anteriores al leer un valor del usuario en lugar de codificar un valor en la comparación. Esto es interesante, ya que es la primera vez que tenemos un programa cuyo comportamiento es sustancialmente diferente dependiendo de lo que el usuario hizo. Es decir este código, imprime un mensaje o no imprime nada dependiendo del valor dado en x.