if
Instrukcja (C)
Instrukcja if
kontroluje rozgałęzianie warunkowe. Treść instrukcji if
jest wykonywana, jeśli wartość wyrażenia jest niezerowa. Składnia instrukcji if
ma dwie formy.
Składnia
selection-statement
:
if (
expression
)
statement
if (
expression
)
statement
else
statement
W obu formach instrukcji if
wyrażenia, które mogą mieć dowolną wartość z wyjątkiem struktury, są oceniane, w tym wszystkie skutki uboczne.
W pierwszej formie składni jest expression
wykonywana wartość true (nonzero). statement
Jeśli expression
wartość ma wartość false, statement
jest ignorowana. W drugiej formie składni, która używa else
metody , drugi statement
jest wykonywany, jeśli expression
ma wartość false. W obu formularzach kontrolka następnie przekazuje instrukcję if
z instrukcji do następnej instrukcji w programie, chyba że jedna z instrukcji zawiera break
continue
, lub goto
.
Poniżej przedstawiono przykłady instrukcji if
:
if ( i > 0 )
y = x / i;
else
{
x = i;
y = f( x );
}
W tym przykładzie instrukcja y = x/i;
jest wykonywana, jeśli i
jest większa niż 0. Jeśli i
wartość jest mniejsza lub równa 0, i
jest przypisana do x
elementu i f( x )
jest przypisana do y
elementu . Instrukcja tworząca klauzulę if
kończy się średnikiem.
Podczas zagnieżdżania if
instrukcji i else
klauzul użyj nawiasów klamrowych, aby pogrupować instrukcje i klauzule złożone, które wyjaśniają intencję. Jeśli nie ma nawiasów klamrowych, kompilator rozwiązuje niejednoznaczności, kojarząc każdy else
z najbliższymi if
elementami, które nie mają elementu else
.
if ( i > 0 ) /* Without braces */
if ( j > i )
x = j;
else
x = i;
Klauzula else
jest skojarzona z instrukcją wewnętrzną if
w tym przykładzie. Jeśli i
wartość jest mniejsza lub równa 0, żadna wartość nie jest przypisana do x
.
if ( i > 0 )
{ /* With braces */
if ( j > i )
x = j;
}
else
x = i;
Nawiasy klamrowe otaczające instrukcję wewnętrzną if
w tym przykładzie sprawiają, że klauzula else
jest częścią instrukcji zewnętrznej if
. Jeśli i
wartość jest mniejsza lub równa 0, i
jest przypisana do elementu x
.