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


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 оператора в следующую инструкцию в программе, если только одна из инструкций не содержит илиbreakcontinuegoto.

Ниже приведены примеры инструкции 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++)