Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
374.doc
Скачиваний:
11
Добавлен:
30.04.2022
Размер:
3.16 Mб
Скачать

If (условие) оператор;

Скобки, обрамляющие условие, обязательны.

Например, в результате выполнения операторов

a = 10;

b =20;

if (b > a) c = b;

переменная с станет равной максимальному из чисел a и b, поскольку оператор c = b будет выполнен только при b > a.

Условием может быть арифметическое выражение, которое может быть преобразовано в булев тип. Поскольку в С++ арифметическое (целое и действительное) значение может преобразовываться к булеву типу (любое ненулевое значение воспринимается как true, а нулевое – как false, то условие может иметь целый тип. Например:

int a, b, c, d;

…………

if ( a – b/c) d = c;

………….

В результате выполнения указанных операторов, если выражение (a b/c) будет иметь ненулевое значение (положительное или отрицательное), то переменой d будет присвоено значение c, если выражение будет иметь нулевое значение, будет выполняться оператор, следующий за условным оператором.

Внимание. Не рекомендуется в условии использовать арифметическое выражение с действительными числами, так как в результате ошибок округления результат вычисления может не быть равен нулю, даже когда чисто теоретически результат дает нуль.

Оператор разветвления. Форма записи структуры разветвления имеет вид:

If (условие) оператор1;

else оператор2;

Если условие возвращает true, то выполняется первый из указанных операторов, а в противном случае выполняется второй оператор. Обратите внимание, что в конце первого оператора перед ключевым словом else ставится точка с запятой.

Например:

if (j == 0)

ShowMessage (“Деление на нуль”);

else

Result = i/j;

Смысловое содержание приведенных операторов состоит в следующем: если значение переменной j = 0, то выводится предупреждение, что в следующем операторе будет выполняться деление на нуль и выполнение этого оператора пропускается, в противном случае выполняется оператор Result = i/j.

В качестве первого и второго оператора могут использоваться составные операторы:

if (j == 0)

{

ShowMessage (“Деление на нуль”);

Result = 0;

}

else

{

Result = i/j;

B = Result*d;

}

Вложенные конструкции операторов. При написании программы могут использоваться условные операторы, имеющие вложенные конструкции, когда внутри одного условия проверяются другие условия. Схемы вложенных конструкций оператора условной передачи управления представлены на рис 3.3.

Рис. 3.3. Схемы вложенных условных операторов:

Запись оператора условной передачи управления с вложенными конструкциями имеет вид:

If ( условие1)

If ( условие2)

Оператор1;

Else оператор2;

Else оператор 3;

При написании операторов условной передачи управления с вложенными конструкциями необходимо проверять соответствие if и else. Компилятор всегда считает, что else относится к последней из конструкций if, в которой не было раздела else.

Например в конструкции:

if ( условие1)

if ( условие2)

Оператор1;

else оператор2;

else будет отнесено компилятором ко второй конструкции if , т. е. оператор2 будет выполняться, если первое условие истинно, а второе – ложно. Данная запись оператора тождественна следующей записи:

if ( условие1)

{

if ( условие2)

оператор1;

else оператор2;

}

Если необходимо отнести к первому, то выражение надо записать в явном виде с помощью фигурных скобок:

if ( условие1)

{

if ( условие2) оператор1;

}

else оператор2;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]