Sentencia de control if

El concepto de sentencia en C es igual que el de otros muchos lenguajes. Por sentencia se entiende en C cualquier instrucción simple o bien, cualquier conjunto de instrucciones simples que se encuentren encerradas entre los caracteres { y }, que marcan respectivamente el comienzo y el final de una sentencia. 

La forma general de la sentencia if es:

if (condición
    sentencia;
else sentencia;


Siendo el else opcional. Si la condición es verdadera se ejecuta la sentencia asociada al if, en caso de que sea falsa la condición se ejecuta la sentencia asociada al else (si existe el else). Veamos algunos ejemplos de sentencias if:

int a,b; 
if (a>b)
{
    b--;
    a=a+5;
}
else
{
    a++;
    b=b-5;
}
if (b-a!=7)
b=5;

Las sentencias de control if pueden ir anidadas. Un if anidado es una sentencia if que es el objeto de otro if o else. Esta anidación de if/else puede presentar la problemática de decidir que else va asociado a cada if. Considerese el siguiente ejemplo:

if (x) if (y) printf(“1”);
else printf(“2”);
¿A que if se refiere el else?. C soluciona este problema asociando cada else al if más cercano posible y que todavía no tiene ningún else asociado. Es por ello que en este caso el if asociado al else es el if(y). Si queremos que el else este asociado al if(x), deberíamos escribirlo de la siguiente forma:
if (x)
{
    if (y)
      printf(“1”);
}
else
    printf(“2”);

» Glosario de Términos para revisar