Лекция основы Си++ 9




НазваниеЛекция основы Си++ 9
страница9/37
Дата публикации11.06.2014
Размер1.85 Mb.
ТипЛекция
literature-edu.ru > Курсовая работа > Лекция
1   ...   5   6   7   8   9   10   11   12   ...   37

5. Присваивание и выражения

5.1 Краткая форма записи операторов присваивания


В программах часто встречаются операторы присваивания, в которых справа стоит выражение, модифицирующее текущее значение переменной, например:

number = number + 1;

Переменным часто присваиваются значения, вычисленные на основе их старых значений. Поэтому в Си++ была введена краткая форма записи для подобных операторов присваивания. Любую из операций "+" (сложение), "-" (вычитание), "*" (умножение), "/" (деление) и "%" (остаток от деления нацело) можно указать в качестве префикса оператора присваивания ("=") (cм. следующую таблицу).


Пример:

number += 1;

total -= discount;

bonus *= 2;

time /= rush_factor;

change %= 100;

amount *= count1 + count2;

Эквивалентное выражение:

number = number + 1;

total = total - discount;

bonus = bonus * 2;

time = time / rush_factor;

change = change % 100;

amount = amount * (count1 + count2);


Первый пример допускает еще более краткую запись с помощью оператора инкремента "++":

number++;

Оператор "++" существует и в префиксной форме:

++number;

Постфиксная и префиксная форма записи имеют важное различие, которое необходимо помнить. Префиксный оператор применяется ДО вычисления остальной части выражения, а постфиксный – ПОСЛЕ. Например, посоле выполнения операторов

x = 4;

y = x++;

переменная "x" получит значение 5, а "y" – значение 4. В случае операторов

x = 4;

y = ++x;

обе переменные получат значение 5. Это объясняется тем, что "++x" выполняется до того, как значение "x" будет использовано в выражении, а "x++" – после. В Си++ существует аналогичный оператор декремента "--", уменьшающий значение переменной на 1, и у него тоже есть префиксная и постфиксная форма.

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

(y = ++x) == 5

Это выражение означает следующее: "после присвоения переменной y инкрементированного значения x проверить, не равно ли значение y числу 5".

5.2 Логические выражения и операторы


Интуитивно логические выражения наподобие "2<7", "1.2!=3.7" и "6>=9" воспринимаются человеком как утверждения, которые могут быть "истинными (true)" или "ложными (false)" (операция "!=" означает "не равно"). Допускается объединение нескольких подобных выражений в более сложное выражение с помощью логических операций "&&" ("И"), "||" ("ИЛИ") и "!" ("НЕ") (см. таблицу).


Выражение:

(6 <= 6) && (5 < 3)

(6 <= 6) || (5 < 3)

(5 != 6)

(5 < 3) && (6 <= 6) || (5 != 6)

(5 < 3) && ((6 <= 6) || (5 != 6))

!((5 < 3) && ((6 <= 6) || (5 != 6)))

Истинно или ложно:

false

true

true

true

false

true


В таблице в четвертом примере выражение истинно, поскольку приоритет операции "&&" выше, чем у "||". Приоритет (порядок выполнения) различных операций Си++ можно узнать в учебнике или руководстве по языку Си++, а также в справочной системе Visual C++ (тема Operator Precedence). Если у вас возникают сомнения относительно приоритета операций, применяйте круглые скобки (). Применение этих скобок облегчает чтение программ.

Составные логические выражения обычно применяются в качестве условий в операторах if и в циклах for. Например:

...

...

if ( total_test_score >= 50 && total_test_score < 65 )

  cout << "Вы прошли тест со средним результатом.\n";

...

...

У логических выражений в Си++ есть еще одно важное свойство. В Си++ истинное значение ("true") представляется в виде целого числа 1 (большинство компиляторов любое положительное число считают истинным значением), а ложное значение ("false") в виде значения 0. Это может привести к ошибкам. Например, легко напечатать "=" вместо "==". Поэтому фрагмент

...

...

if ( number_of_people = 1 )

  cout << "Есть только один человек.\n";

...

...

всегда будет печатать сообщение "Есть только один человек", даже если до оператора if переменная "number_of_people" была больше 1.

1   ...   5   6   7   8   9   10   11   12   ...   37

Похожие:

Лекция основы Си++ 9 iconЛекция основы си++ 7
Б73 Основы программирования на языке Си++: Для студентов физико-математических факультетов педагогических институтов. Коломна: кгпи,...

Лекция основы Си++ 9 iconЛекция I и проблема языка и сознания лекция II 31 слово и его семантическое...
Монография представляет собой изложение курса лекций, про* читанных автором на факультете психологии Московского государственного...

Лекция основы Си++ 9 iconЛекция психосексуальное развитие. Возрастная динамика взаимоотношения полов 15
Основы семейной психопедагогики (курс лекций) / В. И. Короткий. — Архангельск: М'арт, 2003. — 178 с

Лекция основы Си++ 9 iconЛекция Архитектура 32-разрядных ос windows 7
Б73 Основы программирования на языке Си++: Для студентов физико-математических факультетов педагогических институтов. – Коломна:...

Лекция основы Си++ 9 iconЛекция Основные понятия ооп 7
Б73 Основы программирования на языке Си++: Для студентов физико-математических факультетов педагогических институтов. – Коломна:...

Лекция основы Си++ 9 iconЛекция №1. Введение. Элементы дифференциальной геометрии. 2
Лекция №5. Множества Жюлиа, множество Мандельброта и их компьютерное представление. 18

Лекция основы Си++ 9 iconЛекция на тему: «Современные подходы к содержанию дополнительного образования детей»
...

Лекция основы Си++ 9 iconЛекция в Дорнахе 22 мая 1920 года
Канта и протестантизма. Эта лекция вызвала негодование среди членов Лиги, культивировавших и признававших под названием монизма вообще...

Лекция основы Си++ 9 iconКурс лекций Лекция Введение в философскую суицидологию. Лекция Общая...
Открыть, в чём состоит суть суицида, наука не в состоянии (по собственной ограниченной природе) и потому должна обращаться за объяснениями...

Лекция основы Си++ 9 iconЛекция для слушателей курса «Основы религий»
Я не могу всего этого понять, потому что некоторые пытливые учителя, помню, меня просто одолевали вопросами, где найти, например,...

Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции