Оператор if
(C)
Оператор if
управляет условным ветвлением. Тело оператора if
выполняется, если значение выражения отлично от нуля. Существует две формы синтаксиса для оператора if
.
Синтаксис
selection-statement
:
if (
expression
)
statement
if (
expression
)
statement
else
statement
В обоих формах оператора if
выражение может иметь любое значение, кроме структуры, и его вычисление влечет за собой все соответствующие побочные эффекты.
В первой форме синтаксиса expression
выполняется значение true (nonzero statement
). Если expression
значение равно false, statement
игнорируется. Во второй форме синтаксиса, который использует else
, второй statement
выполняется, если expression
значение false. После этого управление передается (в обеих формах) из оператора if
в следующий по порядку оператор программы, если выполняемый оператор не содержит операторов break
, continue
или goto
.
Ниже приведены примеры операторов if
:
if ( i > 0 )
y = x / i;
else
{
x = i;
y = f( x );
}
В этом примере оператор y = x/i;
выполняется, если i
больше 0. Если i
значение меньше или равно 0, i
назначается x
и f( x )
назначается y
. Оператор, формируя if
предложение, заканчивается точкой с запятой.
Если нужно использовать вложение операторов if
и предложений else
, используйте фигурные скобки для группирования операторов и предложений в составные операторы в соответствии с логикой. При отсутствии фигурных скобок компилятор устраняет неоднозначности путем сопоставления каждого предложения else
с ближайшим оператором if
, для которого еще не обнаружено else
.
if ( i > 0 ) /* Without braces */
if ( j > i )
x = j;
else
x = i;
В этом примере предложение else
сопоставляется с внутренним оператором if
. Если значение i
меньше или равно 0, переменной x
не присваивается никакого значения.
if ( i > 0 )
{ /* With braces */
if ( j > i )
x = j;
}
else
x = i;
В этом примере благодаря фигурным скобкам, окружающим внутренний оператор if
, предложение else
относится к внешнему оператору if
. Если значение i
меньше или равно 0, значение переменной i
присваивается переменной x
.