Часть 1. Простые Циклы.
Представим, что нас нужно вывести какое-нибудь число не один, а десять раз. Это можно сделать при помощи циклического оператора for.
for(int i = 0; i < 10; i++) {
cout << a;
}
Например если a = 5, то в выходном файле мы увидим
5555555555
Рассмотрим оператор for поподробней.
for(, , ) {
}
В круглых скобках указывается условие, при котором цикл будет выполняться, а в фигурных скобках сами действия.
В круглые скобках находятся три параметра.
Первый — это начальное значения некоторой переменной, наша отправная точка. В примере мы прямо в цикле объявляем переменную i целочисленного типа int. Если бы переменная была объявлена раньше, то параметр начало выглядел бы так: i = 0.
Второй параметр это — условие при котором будет выполняться цикл. В нашем примере это i < 10 — т.е. пока i будет меньше 10 цикл будет работать.
И последний параметр это изменение значения переменной. Здесь переменная i будет увеличиваться на 1 за одну итерацию. i++ означает, что i увеличивается на 1. С тем же успехом можно написать i = i + 1;
Далее я приведу несколько примеров с описанием того, что будет происходить в цикле.
1) Программа, увеличивающая некоторое значение n на 5 три раза подряд. После выполнения цикла получим
n = 15.
int n = 0;
for(int i = 0; i < 3; i++) {
n = n + 5;
}
2) Программа, 5 раз выводящая слово Hello. Каждый раз слово появляется в новой строке. Это происходит из-за команды endl, которая и переводит строку. Сама команда endl, как нетрудно догадаться, расшифровывается как end line. Если её убрать то в выходном файле получим
HelloHelloHelloHelloHello
for(int j = 0; j < 5; j++) {
cout << «Hello» << endl;
}
Часть 2. Вложенные циклы.
Теперь поговорим о несколько более сложной конструкции — о вложенных циклах. Что будет если один цикл поместить в другой? Например вот так:
int n = 0;
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 5; j++) {
n = n + 2;
}
}
Вложенные циклы можно сравнить, например, с календарем. Год — это цикл из 12 месяцев. А в каждом месяце есть вложенный цикл в виде дней. То есть что бы пройти один круг на внешнем цикле нужно сначала полностью отмотать внутренний цикл. Рассмотрим программу, написанную выше.
Здесь внешний цикл — это тот, в котором принимает участие переменная i. Внутренний цикл соответственно с переменной j. Сначала, при i = 0, j пробежит по всем своим значениям от 0 до 4. Потом i перейдет на 1, а j вновь начнет нарезать круги с 0 до 4. И так, пока не закончится внешний цикл. То есть всего будет 3 * 5 = 15 итераций. А n в конце будет равно 30.
Примеры с вложенными циклами:
- Программа, выводящая строку «01234» три раза подряд, в три разные строки. Внутренний цикл будет увеличивать значение j и выводить эту переменную, а после завершения внутреннего цикла следует перевод строки, который повторится 3 раза.
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 5; j++) {
cout << j;
}
cout << endl;
}
2) Необязательно должно быть так, чтобы был только один вложенный цикл. Можно во вложенный цикл вложить еще один, тогда у нас появится как бы еще один внутренний круг. В этом примере у нас три цикла, а значение n принимает значения от 0 до 999
int n = 0;
for(int i = 0; i < 10; i++){
for(int j = 0; j < 10; j++) {
for(int k = 0; k < 10; k++) {
n++;
}
}
}