Язык программирования C++. Пятое издание - [8]

Шрифт
Интервал

>#include

>/*

> * Пример функции main():

> * Читает два числа и отображает их сумму

>*/

>int main()

>{

> // Предлагает пользователю ввести два числа

> std::cout << "Enter two numbers:" << std::endl;

> int v1 = 0, v2 = 0;   // переменные для хранения ввода

> std::cin >> v1 >> v2; // чтение ввода

> std::cout << "The sum of " << v1 << " and " << v2

>           << " is " << v1 + v2 << std::endl;

> return 0;

>}

В этой книге комментарии выделены курсивом, чтобы отличить их от обычного кода программы. Обычно выделение текста комментариев определяется возможностями используемой среды разработки.

Парный комментарий не допускает вложения

Комментарий, который начинается символом >/*, всегда завершается следующим символом >*/. Поэтому один парный комментарий не может находиться в другом. Сообщение о подобной ошибке, выданное компилятором, как правило, вызывает удивление. Попробуйте, например, откомпилировать следующую программу:

>/*

>* парный комментарий /* */ не допускает вложения

>* под "не допускает вложения" следует понимать, что остальная часть

>* текста будет рассматриваться как программный код

>*/

>int main()

>{

> return 0;

>}

Упражнения раздела 1.3

Упражнение 1.7. Попробуйте откомпилировать программу, содержащую недопустимо вложенный комментарий.

Упражнение 1.8. Укажите, какой из следующих операторов вывода (если он есть) является допустимым:

>std::cout << "/*";

>std::cout << "*/";

>std::cout << /* "*/" */;

>std::cout << /* "*/" /* "/*" */;

Откомпилируйте программу с этими тремя операторами и проверьте правильность своего ответа. Исправьте ошибки, сообщения о которых были получены.

1.4. Средства управления

Операторы обычно выполняются последовательно: сначала выполняется первый оператор в блоке, затем второй и т.д. Конечно, при последовательном выполнении операторов много задач не решить (включая проблему книжного магазина). Для управления последовательностью выполнения все языки программирования предоставляют операторы, обеспечивающие более сложные пути выполнения.

1.4.1. Оператор >while

Оператор>while организует итерационное (циклическое) выполнение фрагмента кода, пока его условие остается истинным. Используя оператор >while, можно написать следующую программу, суммирующую числа от >1 до >10 включительно:

>#include

>int main() {

> int sum = 0, val = 1;

> // продолжать выполнение цикла, пока значение val

> // не превысит 10

> while (val <= 10) {

>  sum += val; // присвоить sum сумму val и sum

>  ++val;      // добавить 1 к val

> }

> std::cout << "Sum of 1 to 10 inclusive is "

>           << sum << std::endl;

> return 0;

>}

Будучи откомпилированной и запущенной на выполнение, эта программа отобразит на экране следующий результат:

>Sum of 1 to 10 inclusive is 55

Как и прежде, программа начинается с включения заголовка >iostream и определения функции >main(). В функции >main() определены две переменные типа >int>sum, которая будет содержать полученную сумму, и >val, которая будет содержать каждое из значений от 1 до 10. Переменной >sum присваивается исходное значение >0, а переменной >val — исходное значение >1.

Новой частью программы является оператор >while, имеющий следующий синтаксис.

>while (условие)

> оператор

Оператор >while циклически выполняет >оператор, пока >условие остается истинным. >Условие — это выражение, результатом выполнения которого является истина или ложь. Пока >условие истинно, оператор выполняется. После выполнения >оператора условие проверяется снова. Если >условие остается истинным, >оператор выполняется снова. Цикл >while продолжается, поочередно проверяя >условие и выполняя >оператор, пока >условие не станет ложно.

В этой программе использован следующий оператор >while:

>// продолжать выполнение цикла, пока значение val

>// не превысит 10

>while (val <= 10) {

> sum += val; // присвоить sum сумму val и sum

> ++val;      // добавить 1 к val

>}

Для сравнения текущего значения переменной >val и числа >10 условие цикла использует оператор меньше или равно (оператор><=). Пока значение переменной >val меньше или равно >10, условие истинно и тело цикла >while выполняется. В данном случае телом цикла >while является блок, содержащий два оператора.

>{

> sum += val; // присвоить sum сумму val и sum

> ++val;      // добавить 1 к val

>}

Блок (block) — это последовательность из любого количества операторов, заключенных в фигурные скобки. Блок является оператором и может использоваться везде, где допустим один оператор. Первым в блоке является составной оператор присвоения (compound assignment operator), или оператор присвоения с суммой (оператор>+=). Этот оператор добавляет свой правый операнд к левому операнду. Это эквивалентно двум операторам: суммы и присвоения.

>sum = sum + val; // присвоить sum сумму val и sum

Таким образом, первый оператор в блоке добавляет значение переменной >val к текущему значению переменной sum и сохраняет результат в той же переменной >sum.

Следующее выражение использует префиксный оператор инкремента (prefix increment operator) (оператор>++), который осуществляет приращение:

>++val; // добавить 1 к val

Оператор инкремента добавляет единицу к своему операнду. Запись >++val эквивалентна выражению >val = val + 1.

После выполнения тела цикл


Рекомендуем почитать
Графика DirectX в Delphi

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


Вторая жизнь старых компьютеров

Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.


DirectX 8. Начинаем работу с DirectX Graphics

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


Симуляция частичной специализации

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


Обработка событий в С++

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


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.