Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Электронный конспект лекций (семестр 1).doc
Скачиваний:
31
Добавлен:
29.02.2016
Размер:
321.02 Кб
Скачать
    1. “Линейные” операторы

Следом за “линейным” оператором всегда выполняется следующий (расположенный непосредственно за ним) оператор. К “линейным” операторам относятся, например, операторы присваивания и ввода-вывода, а также “пустой” оператор.

Пустой оператор в программе представляется отдельной точкой с запятой, которая в данном случае завершает “пустое” (отсутствующее) действие. Наличие в языке такого, на первый взгляд, ненужного оператора, в действительности является весьма полезной и востребованной (особенно на этапе обучения) возможностью.

    1. Операторы управления программой

Операторы управления программой (управляющие операторы) влияют на последовательность выполнения операторов программы.

      1. Условный оператор if(if-else)

Условный оператор ifпозволяет выбрать один из двух возможных вариантов вы­полнения действий в зависимости от выполнения определенногоусловия. Условие – это логическое выражение, то есть выражение, результатом которого является логическое значение (true(“истина”) илиfalse(“ложь”)).

Оператор ifимеет две формы – полную (сelse)

if ( условие )

оператор_1

else

оператор_2

и сокращенную (без него):

if ( условие )

оператор_1

Полная форма оператора if означает, что еслиусловиеистинно, выполняется оператороператор_1, если ложно – оператороператор_2.

Сокращенная форма записи оператора if означает, что оператор_1 выполняется, еслиусловие истинно. Она эквивалентна полной форме с пустым оператором послеelse:

if ( условие )

оператор_1

else ;

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

if (x < 0)

{

x = -x;

cout << "Changing a sign of x";

}

a = x;

В качестве операторов оператор_1 и оператор_2 в операторахif (if-else)могут применяться любые операторы, в том числе и другие операторыif (if-else), то есть операторыif (if-else)могут быть “вложенными”.

Истинность условия определяется вычислением его логическогозначения (trueилиfalse). Помимо операций сравнения ( > , >= , < , <= , = = , !=), логическое значение выдают такжелогические операции. Стандартные логические операции – это бинарные операции “логическое И” (&&) и “логическое ИЛИ” (||) и унарная операция “логическое НЕ” (!). Операндами логических операций являются логические выражения. Использование логических операций позволяет объединять несколько простых условий в более сложное, например,

if ((a>=c) && (b>=c))

cout << c;

Операция &&дает результат “истина” (true), если оба ее операнда истинны, и “ложь” (false)во всех других случаях. Операция||дает результат “ложь”, если оба ее операнда ложны, и “истина” во всех других случаях. Результат операции!противоположен значению ее операнда.

Операции сравнения и логические операции имеют более низкий приоритет по сравнению с арифметическими операциями. Это означает, что в выражении, содержащем и логические и арифметические операции, арифметические операции будут выполняться раньше логических, например, p>s+tвычисляется какp>(s+t).

Ниже показаны сравнительные приоритеты операций сравнения и логических операций:

Высший

!

> >= < <=

= = !=

&&

Низший

||

В соответствии с этой таблицей, например, составное условие предыдущего примера

(a>=c) && (b>=c)

можно записать без двух пар скобок:

a>=c && b>=c

поскольку приоритет операции сравнения “больше или равно” выше, чем приоритет логического И.