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.

Confira também

Instrução if-else (C++)