Поделиться через


Оператор 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.

См. также

Оператор if-else (C++)