if
Instrução (C)
A instrução if
controla a ramificação condicional. O corpo de uma instrução if
será executado se o valor da expressão for diferente de zero. A sintaxe da instrução if
tem dois formatos.
Sintaxe
selection-statement
:
if (
expression
)
statement
if (
expression
)
statement
else
statement
Em ambos os formatos da instrução if
, as expressões, que podem ter qualquer valor exceto uma estrutura, são avaliadas, inclusive todos os efeitos colaterais.
No primeiro formato da sintaxe, se a expression
for verdadeira (diferente de zero), a statement
será executada. Se expression
for falso, statement
será ignorado. No segundo formato da sintaxe, que usa else
, a segunda statement
será executada se a expression
for falsa. Com ambos os formatos, o controle passará da instrução if
para a próxima instrução do programa, a menos que uma das instruções contenha um break
, continue
ou goto
.
A seguir estão alguns exemplos da instrução if
:
if ( i > 0 )
y = x / i;
else
{
x = i;
y = f( x );
}
Neste exemplo, a instrução y = x/i;
é executada se i
for maior que 0. Se i
for inferior ou igual a 0, i
será atribuído a x
e f( x )
será atribuído a y
. A instrução que forma a cláusula if
termina com um ponto e vírgula.
Ao aninhar instruções if
e cláusulas else
, use chaves para agrupar as instruções e cláusulas em instruções compostas que esclareçam sua intenção. Se nenhuma chave estiver presente, o compilador resolve as ambiguidades associando cada else
com o if
sem o else
mais próximo.
if ( i > 0 ) /* Without braces */
if ( j > i )
x = j;
else
x = i;
Neste exemplo, a cláusula else
está associada à instrução if
interna. Se i
for menor ou igual a 0, nenhum valor será atribuído a x
.
if ( i > 0 )
{ /* With braces */
if ( j > i )
x = j;
}
else
x = i;
As chaves que cercam a instrução interna if
neste exemplo formam a parte da cláusula else
da instrução if
externa. Se i
for menor ou igual a 0, i
é atribuído a x
.