Комментарий, который начинается символом /*
, всегда завершается следующим символом */
. Поэтому один парный комментарий не может находиться в другом. Сообщение о подобной ошибке, выданное компилятором, как правило, вызывает удивление. Попробуйте, например, откомпилировать следующую программу:
/*
* парный комментарий /* */ не допускает вложения
* под "не допускает вложения" следует понимать, что остальная часть
* текста будет рассматриваться как программный код
*/
int main()
{
return 0;
}
Упражнение 1.7. Попробуйте откомпилировать программу, содержащую недопустимо вложенный комментарий.
Упражнение 1.8. Укажите, какой из следующих операторов вывода (если он есть) является допустимым:
std::cout << "/*";
std::cout << "*/";
std::cout << /* "*/" */;
std::cout << /* "*/" /* "/*" */;
Откомпилируйте программу с этими тремя операторами и проверьте правильность своего ответа. Исправьте ошибки, сообщения о которых были получены.
1.4. Средства управления
Операторы обычно выполняются последовательно: сначала выполняется первый оператор в блоке, затем второй и т.д. Конечно, при последовательном выполнении операторов много задач не решить (включая проблему книжного магазина). Для управления последовательностью выполнения все языки программирования предоставляют операторы, обеспечивающие более сложные пути выполнения.
1.4.1. Оператор while
Операторwhile
организует итерационное (циклическое) выполнение фрагмента кода, пока его условие остается истинным. Используя оператор while
, можно написать следующую программу, суммирующую числа от 1
до 10
включительно:
#include <iostream>
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