Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
new_mb.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
892 Кб
Скачать
☆

2.2. Циклы

Циклы используются в тех случаях, когда необходимо выполнить одну и туже или похожую последовательность действий несколько раз. В языке С++ для этих целей предусмотрены три инструкции: «for», «while» и «do – while».

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

Вне зависимости от используемого типа цикла, выход из него может быть произведен с помощью оператора «break», а завершение текущей итерации и переход к следующей – с помощью оператора «continue».

Один и тотже цикл может быть реализован различными инструкциями, с применением операторов «break» и «continue» или без них. Выбор конкретной реализации зависит только от программиста и его целей. Все листинги данного раздела не призваны быть наиболее эффективными или эталонными для решения поставленных задач, но демонстрируют возможности предоставляемые используемыми в каждом примере циклами.

2.2.1. Цикл «for»

Цикл с заранее известным числом итераций удобнее реализуется с помощью инструкции «for». Типичный цикл «for» выглядит следующим образом.

Листинг 2.4. Квадраты чисел от 0 до 9.

#include <iostream>

using namespace std;

int main (void)

{

for (int i = 0; i < 10; i++)

cout << i*i << " ";

return 0;

}

В примере, в строке, инициализирующей цикл, задано три выражения, определяющих поведение цикла. Первое выражение инициализирует некоторые данные, являющиеся для цикла некоторой точкой отсчета. При использовании цикла «for» удобнее всего этим выражением инициализировать счетчик количества итераций. Второе выражение задает условие выполнения итераций. Чаще, это сравнение или логическое выражение, но может использоваться все, что приводимо к типу «bool». Последнее выражение определяет действие, выполняемое по окончании каждой итерации. Обычно это инкремент или декремент счетчика, значение которого в итоге перестает удовлетворять сравнению во втором выражении. Следующий пример запрашивает два числа и возводит первое в степень второго.

Листинг 2.5. Возведение в степень.

#include <iostream>

using namespace std;

int main (void)

{

unsigned int x;

int y, z;

cin >> y >> x;

for (z = 1; x > 0; x--)

z *= y;

cout << z << endl;

return 0;

}

При инициализации цикла «for» отдельные выражения могут быть опущены, при этом символ двоеточия быть должен.

Листинг 2.6. Подсчет факториала вводимого числа.

#include <iostream>

using namespace std;

int main (void)

{

unsigned int x;

cin >> x;

unsigned int y = 1;

for ( ; x > 0 ; )

y *= x--;

cout << y << endl;

return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]