Istruzione if (C)if Statement (C)

L'istruzione if controlla la creazione condizionale di rami.The if statement controls conditional branching. Il corpo di un'istruzione if viene eseguito se il valore dell'espressione è diverso da zero.The body of an if statement is executed if the value of the expression is nonzero. La sintassi dell'istruzione if presenta due formati.The syntax for the if statement has two forms.

SintassiSyntax

selection-statement:selection-statement:
if ( espressione ) istruzioneif ( expression ) statement

if ( expression ) statement else statementif ( expression ) statement else statement

In entrambi i formati dell'istruzione if vengono valutate le espressioni (che possono avere qualsiasi valore salvo una struttura), inclusi tutti gli effetti collaterali.In both forms of the if statement, the expressions, which can have any value except a structure, are evaluated, including all side effects.

Nel primo formato della sintassi se expression è true (diversa da zero), l'istruzione statement viene eseguita.In the first form of the syntax, if expression is true (nonzero), statement is executed. Se expression è false, statement viene ignorata.If expression is false, statement is ignored. Nel secondo formato della sintassi, che usa else, la seconda istruzione statement viene eseguita se expression è false.In the second form of syntax, which uses else, the second statement is executed if expression is false. Con entrambi i formati il controllo passa quindi dall'istruzione if all'istruzione successiva nel programma, a meno che una delle istruzioni contenga break, continue o goto.With both forms, control then passes from the if statement to the next statement in the program unless one of the statements contains a break, continue, or goto.

Di seguito sono illustrati esempi dell'istruzione if:The following are examples of the if statement:

if ( i > 0 )  
    y = x / i;  
else   
{  
    x = i;  
    y = f( x );  
}  

In questo esempio, l'istruzione y = x/i; viene eseguita se i è maggiore di 0.In this example, the statement y = x/i; is executed if i is greater than 0. Se i è minore o uguale a 0, i viene assegnato a x e f( x ) viene assegnato a y.If i is less than or equal to 0, i is assigned to x and f( x ) is assigned to y. Si noti che l'istruzione che costituisce la clausola if termina con un punto e virgola.Note that the statement forming the if clause ends with a semicolon.

Quando si annidano istruzioni if e clausole else usare le parentesi graffe per raggruppare istruzioni e clausole in istruzioni composte che chiariscono lo scopo dell'operazione.When nesting if statements and else clauses, use braces to group the statements and clauses into compound statements that clarify your intent. Se non sono presenti parentesi graffe, il compilatore risolve le ambiguità associando ogni clausola else all'istruzione if più vicina priva di else.If no braces are present, the compiler resolves ambiguities by associating each else with the closest if that lacks an else.

if ( i > 0 )           /* Without braces */  
    if ( j > i )  
        x = j;  
    else  
        x = i;  

In questo esempio la clausola else viene associata all'istruzione if interna.The else clause is associated with the inner if statement in this example. Se i è minore o uguale a 0, nessun valore viene assegnato a x.If i is less than or equal to 0, no value is assigned to x.

if ( i > 0 )   
{                      /* With braces */  
    if ( j > i )  
        x = j;  
}  
else  
    x = i;  

In questo esempio le parentesi graffe relative all'istruzione interna if rendono la clausola else parte dell'istruzione if esterna.The braces surrounding the inner if statement in this example make the else clause part of the outer if statement. Se i è minore o uguale a 0, i viene assegnato a x.If i is less than or equal to 0, i is assigned to x.

Vedere ancheSee Also

Istruzione if-else (C++)if-else Statement (C++)