Control de flujo condicional if

Es una sentencia en la que se evalúa una condición y, solo si es verdad, se ejecuta un conjunto de sentencias asociadas.

if (condicion)
{
   bloque de sentencias;
}

Las llaves { } delimitan el conjunto de sentencias afectadas por la condición if.

../../_images/if.jpg

Diagrama de flujo de la sentencia if

Ejemplo

/*----------------------------------------------------*/
/* Este programa transforma temperaturas de           */
/* grados celsius a grados kelvin                     */
/* Comprueba si la temperatura tiene existencia real  */
/*----------------------------------------------------*/
#include <iostream>
using namespace std;

int main()
{
   double centig;
   cout << "Introduzca grados celsius: ";
   cin >> centig;
   if (centig >= -273.)
   {
      double kelvin = centig + 273.;  // Inicializacion
      cout << centig << " grados celsius son " << kelvin
          << " grados kelvin\n";
   }
}

Edita, compila y ejecuta el código

Nótese en el ejemplo anterior que las dos sentencias asociadas a la sentencia if se ejecutan en función de si la expresión entre paréntesis centig >= -273. es evaluada como cierta o falsa.

Consideraciones respecto a la sintaxis

Cuando el bloque está formado por una única sentencia, pueden omitirse las llaves.

Así,

if (a != 0)
{
   a = 1/a;
}

es equivalente a:

if (a != 0)
   a = 1/a;

Siguiendo con el ejemplo anterior, es habitual escribirlo como:

if (a)  // a != 0 <-> a
   a = 1/a;

dado que cualquier valor no nulo será siempre evaluado como cierto.

Advertencia

El siguiente fragmento ilustra un error habitual.

a = 5;
if (a = 1)   //¡¡ERROR!!
   cout << "La variable vale 1\n";

¡Se esta asignando en lugar de comparando!