if
Istruzione (C)
L'istruzione if
controlla la diramazione condizionale. Il corpo di un'istruzione if
viene eseguito se il valore dell'espressione è diverso da zero. La sintassi per l'istruzione if
ha due forme.
Sintassi
selection-statement
:
if (
expression
)
statement
if (
expression
)
statement
else
statement
In entrambe le forme dell'istruzione if
, le espressioni, che possono avere qualsiasi valore ad eccezione di una struttura, vengono valutate, inclusi tutti gli effetti collaterali.
Nella prima forma della sintassi, se expression
è true (diverso da zero), statement
viene eseguita. Se expression
è false, statement
viene ignorato. Nella seconda forma di sintassi, che usa else
, il secondo statement
viene eseguito se expression
è false. Con entrambi i moduli, il controllo passa quindi dall'istruzione all'istruzione if
successiva nel programma, a meno che una delle istruzioni non contenga un break
oggetto , continue
o goto
.
Di seguito sono riportati alcuni esempi dell'istruzione if
:
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. Se i
è minore o uguale a 0, i
viene assegnato a x
e f( x )
viene assegnato a y
. L'istruzione che forma la if
clausola termina con un punto e virgola.
Quando si annidano if
istruzioni e else
clausole, usare le parentesi graffe per raggruppare le istruzioni e le clausole in istruzioni composte che chiariscno la finalità. Se non sono presenti parentesi graffe, il compilatore risolve le ambiguità associando ognuna else
a quella più if
vicina che non dispone di un oggetto else
.
if ( i > 0 ) /* Without braces */
if ( j > i )
x = j;
else
x = i;
La else
clausola è associata all'istruzione interna if
in questo esempio. Se i
è minore o uguale a 0, nessun valore viene assegnato a x
.
if ( i > 0 )
{ /* With braces */
if ( j > i )
x = j;
}
else
x = i;
Le parentesi graffe che circondano l'istruzione interna if
in questo esempio fanno else
parte della clausola dell'istruzione esterna if
. Se i
è minore o uguale a 0, i
viene assegnato a x
.