Instrucción if
(C)
La instrucción if
controla la bifurcación condicional. El cuerpo de una instrucción if
se ejecuta si el valor de la expresión es distinto de cero. La sintaxis de la instrucción if
adopta dos formatos.
Sintaxis
selection-statement
:
if (
expression
)
statement
if (
expression
)
statement
else
statement
En ambos formatos de la instrucción if
se evalúan las expresiones, que pueden tener cualquier valor excepto una estructura, incluidos todos los efectos secundarios.
En la primera forma de sintaxis, si expression
es true (distinta de cero), se ejecuta statement
. Si expression
es false, se omite statement
. En la segunda forma de sintaxis, que utiliza else
, se ejecuta la segunda instancia de statement
si expression
es false. En ambos formatos, el control pasa de la instrucción if
a la siguiente instrucción del programa a menos que una de las instrucciones contenga break
, continue
o goto
.
A continuación, se muestran ejemplos de la instrucción if
:
if ( i > 0 )
y = x / i;
else
{
x = i;
y = f( x );
}
En este ejemplo, la instrucción y = x/i;
se ejecuta si i
es mayor que 0. Si i
es menor o igual que 0, i
se asigna a x
y f( x )
se asigna a y
. La instrucción que forma la cláusula if
finaliza con punto y coma.
Al anidar instrucciones if
y cláusulas else
, use llaves para agrupar las instrucciones y las cláusulas en instrucciones compuestas que clarifiquen su intención. Si no hay llaves presentes, el compilador resuelve las ambigüedades asociando cada cláusula else
a la instrucción if
más próxima que no tenga else
.
if ( i > 0 ) /* Without braces */
if ( j > i )
x = j;
else
x = i;
En este ejemplo, la cláusula else
está asociada a la instrucción if
interna. Si i
es menor o igual que 0, no se asigna ningún valor a x
.
if ( i > 0 )
{ /* With braces */
if ( j > i )
x = j;
}
else
x = i;
Las llaves que rodean la instrucción if
interna en este ejemplo componen la parte de la cláusula else
de la instrucción if
externa. Si i
es menor o igual que 0, i
se asigna a x
.