Программирование. Принципы и практика использования C++ Исправленное издание, стр. 47
До сих пор мы сталкивались с двумя видами инструкций: выражениями и объявлениями. Инструкции первого типа представляют собой выражения, которые завершаются точкой с запятой.
a = b;++b;Выше приведен пример двух инструкций, представляющих собой выражения. Например, присваивание
=a=ba=bРассмотрим пример.
a = b ++ b; // синтаксическая ошибка: пропущена точка с запятойБез точки с запятой компилятор не знает, что означает это выражение:
a=b++; b;a=b; ++b;int a = 7;cout << a << '\n';Здесь объявление с инициализацией выполняется до оператора вывода. В целом мы хотим, чтобы инструкция имела какой-то эффект. Без эффекта инструкции, как правило, бесполезны. Рассмотрим пример.
1+2; // выполняется сложение, но сумму использовать невозможноa*b; // выполняется умножение, но произведение не используетсяТакие инструкции без эффекта обычно являются логическими ошибками, и компиляторы часто предупреждают программистов об этом. Таким образом, инструкции, представляющие собой выражения, обычно являются инструкциями присваивания, ввода-вывода или вызова функции.
Упомянем еще об одной разновидности: пустой инструкции. Рассмотрим следующий код:
if (x == 5);{ y = 3; }
Что произойдет, когда эта программа начнет выполняться? Компилятор проверит, равно ли значение переменной
x5y3x53x5Иначе говоря, эта инструкция
ify3xСледующий раздел посвящен инструкциям, позволяющим изменить порядок вычислений и выразить более сложные вычисления, чем те, которые сводятся к последовательному выполнению ряда инструкций.
4.4.1. Инструкции выбора
В программах, как и в жизни, мы часто делаем выбор из нескольких альтернатив. В языке С++ для этого используются инструкции
ifswitch4.4.1.1. Инструкции if
Простейшая форма выбора в языке С++ реализуется с помощью инструкции
ifint main(){ int a = 0; int b = 0; cout << "Пожалуйста, введите два целых числа \n"; cin >> a >> b; if (a<b) // условие // 1-я альтернатива (выбирается, если условие истинно): cout << "max(" << a << "," << b <<") равно " << b <<"\n"; else // 2-я альтернатива (выбирается, когда условие ложно): cout << "max(" << a << "," << b <<") равно " << a << "\n";}
ifif (traffic_light==green) go();if (traffic_light==red) wait();Итак, основное понятие является простым, но и это простое понятие можно использовать слишком наивно. Рассмотрим неправильную программу (ошибка в ней заключается не только в отсутствии директивы
#include