Цикл for
С помощью конструкции цикла вы можете повторно выполнять некоторую последовательность кодов. В С++ предусмотрен богатый ассортимент конструкций циклов. Здесь мы рассмотрим только цикл for. Если вы знакомы с С# или Java вам будет приятно узнать, что цикл for действует в С++ точно так же. как и в этих двух языках. Ниже приведена простейшая форма цикла for:
for(инициализация; условие; приращение) предложение;
В этой конструкции инициализация устанавливает начальное значение управляющей переменной, условие является выражением, которое анализируется в каждом шаге цикла, приращение представляет собой выражение, определяющее, как будет изменяться значение управляющей переменной в каждом шаге цикла.
Приводимая ниже программа демонстрирует простой цикл for. Она выводит на экран числа от 1 до 100.
// Программа, иллюстрирующая цикл for.
#include <iostream>
using namespace std;
int main()
{
for( count = 1; count <- 100; count = count +1)
cout << count << " " ;
return 0;
}
В этой программе переменная count инициализируется числом 1. В каждом шаге цикла проверяется условие
count <= 100
Если результат истинен, значение count выводится на экран, после чего count увеличивается на 1. Когда count достигает значения, большего 100, условие становится ложным и цикл прекращает свое выполнение.
В профессионально написанной С++-программе вы почти никогда не встретите предложение вроде
count = count + l
потому что С++ включает в себя специальный инкрементный оператор, выполняющий эту операцию более эффективно. Инкрементный оператор записывается как ++ (два последовательных знака плюс). Этот оператор увеличивает операнд на 1. С его помощью предыдущее предложение forзапишется таким образом:
for(count=1; count <= 100; count++)
cout << count << " " ;
В С++ имеется и декрементный оператор, который записывается
как -- . Он уменьшает операнд на 1.
Цель 1.9. Использование программных блоков
Еще одним ключевым элементом С++ является программный блок. Программный блок представляет собой группу из двух или более предложений. Блок образуется заключением его предложений в фигурные скобки. Блок, будучи создан, становится логической единицей, которую можно использовать в любом месте, где может находиться одиночное предложение. В частности, блок может служить целевым объектом (мишенью) в предложениях ifи for. Рассмотрим пример предложения if:
if (w < h) {
v = w * h;
w=0;
}
В этом фрагменте если w меньше чем h, выполняются оба предложения внутри блока. Таким образом, эти два предложения внутри блока образуют логическую единицу, в которой одно предложение не может выполняться без второго. Во всех случаях, когда вам требуется логически связать два или несколько предложений, вы заключаете их в блок. С использованием программных блоков многие алгоритмы реализуются с большей ясностью и эффективностью.
Рассмотрим программу, которая использует программный блок для предотвращения деления на 0:
//Демонстрация программного блока.
#include <iostream>
using namespace std;
int main() {
double result, n, d;
cout « "Введите значение: ";
cin >> n;
cout « "Введите делитель: ";
cin » d;
// целевым объектом предложения if является блок
if (d != 0) {
cout << "d не равно нулю, поэтому делить можно" << "\n";
result = n / d;
cout << n << " / “ << d << " равно" << result;
}
return 0;
}
Ниже приведен пример прогона программы:
Введите значение: 10
Введите делитель: 2
d не равно нулю, поэтому делить можно
10 / 2 равно 5
В этом случае мишенью предложения if является программный блок, а не просто одиночное предложение. Если проверяемое в предложении ifусловие истинно (как это имеет место в примере прогона программы), то выполняются все три предложения, заключенные в блок. Если задать в качестве делителя ноль, весь код внутри блока не выполняется.