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”);