Операторы циклов: цикл for

Все в нашей жизни циклично... цикл while, цикл for - Введение в программирование

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

Рассмотрим, так называемыециклы, а именно цикл while и цикл for. Для чего они нужны? Для того, чтобы ответить на этот вопрос представим себе такую ситуацию: ну к примеру вы хотите напечатать на экране свое имя ровно 20 раз. Как вы уже знаете для этого мы должны воспользоваться оператором консольного вывода (cout - поместить в поток). Вот такая строка кода должна выводить ваше имя:

1.cout << "Your name" << endl;

Для того, чтобы вывести имя 20 раз нам нужно написать в своей программе эту строку ровно 20 раз! Хорошо, если вы решили вывести свое имя 20 раз, а не, к примеру, 100 или 1000! Конечно же, вы понимаете, что это очень накладно и нереально. В этом случае на помощь программисту приходят циклы while и for , которые позволяют выполнять определенный участок кода (в нашем случае это печать имени) столько раз, сколько мы укажем. Иными словами, пока не выполнится какое-либо условие, требуемое для завершения цикла. В нашем случае этим условием, как вы уже догадываетесь, является число 20, т.к. печатать нам нужно именно 20 раз. Рассмотрим цикл while.

Операторы циклов: цикл while

Цикл while с предусловием

Синтаксис данного оператора цикла таков:

1.while (условие выполнения цикла)

2.{

3. оператор 1;

4. оператор 2;

5. ...

6. оператор n;

7.}

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

01.//Операторы циклов - цикл while

02.

03.#include <iostream>

04.

05.using namespace std;

06.

07.int main()

08.{

09. int i;

10.

11. i = 1;

12. while (i <= 20)

13. {

14. cout << "Your name" << endl;

15. i = i + 1;

16. }

17.

18. return 0;

19.}

Мы определяем переменную i, которая у нас будет служить счетчиком, задаем нашему счетчику начальное значение равное единице перед входом в цикл. В цикле определяем условие, при котором у нас будет он работать, т.е. выполняться заключенные в него операторы. После того, как условие перестанет выполняться, цикл завершится и программа выйдет из него и перейдет к выполнению следующих после цикла операторов (у нас это оператор return 0;). Для того, чтобы цикл работал должно выполняться указанное в нем условие (у нас это i <= 20), когда i становится равным 21, то операторы заключенные в тело цикла уже выполняться не будут. Естественно, программист должен обязательно позаботиться, чтобы это условие выхода из цикла когда-нибудь сработало, иначе произойдет зацикливание и программа никогда не завершиться (придется аварийно завершать ее). Для этого у нас есть счетчик, который в каждой итерации (одно выполнения цикла) увеличивает свое значение на единицу:

1.i = i + 1;

(Небольшое отступление) Как видите здесь используется оператор присваивания. Повторим: то, что находится от оператора присваивания (=) справа, считается и помещается в переменную, расположенную слева от оператора присваивания (=). То есть, если в предыдущей итерации (шаге выполнения цикла) i было равно 2, то новое значение будет с помощью данной строчки кода посчитано так:

1.3 = 2 + 1;

Есть и сокращенная форма записи этой строки кода, которая увеличивает значение переменной на единицу:

1.i++;

++ - это оператор инкремента.

Рассмотренный способ использования оператора цикла while, называется цикл с предусловием.

Важно! Запомнить:

1. Циклы в программировании позволяют выполнять отдельный кусочек программы, заключенной в его тело (между {}), столько раз - сколько мы укажем, либо пока не наступит определенное условие его завершения.

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

3. В языке программирования С++ существует возможность увеличения значения переменной на единицу с помощью оператора инкремента (++).

Операторы циклов: цикл while

Цикл while с постусловием

Цикл while с предусловием мы рассмотрели, но есть еще и второй вариант использования цикла while - это цикл с постусловием. Синтаксис его таков:

1.do

2.{

3. оператор 1;

4. оператор 2;

5. ...

6. оператор n;

7.}

8.while (условие выполнения цикла); //не забывайте про точку с запятой

В чем же разница!? Разница одна лишь в том, что тело (содержимое) такого цикла while выполниться как минимум один раз, т.к. условие теперь уже проверяется не в начале цикла, а в конце. Иногда в ваших программах нужно будет использовать именно такую разновидность цикла while. Перепишем нашу программу с использованием данной разновидности цикла while:

01.//Операторы циклов - цикл while

02.

03.#include <iostream>

04.

05.using namespace std;

06.

07.int main()

08.{

09. //инициализируем переменную значением 1 при объявлении

10. int i = 1;

11.

12. do

13. {

14. cout << "Your name" << endl;

15. i++;

16. }

17. while (i <= 20);

18.

19. return 0;

20.}

Важно! Запомнить:

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

2. В конце цикла while с постусловием не забывайте ставить точку с запятой.

Операторы циклов: цикл for

Теперь давайте рассмотрим вторую разновидность циклов, используемых в языке программирования С++ - это цикл for. Чем же он отличается? Главное его отличие в том, что в параметрах самого цикла можно инициализировать (объявить) переменную-счетчик, которая у нас будет считать итерации (повторения) циклов, и задать ей начальное значение, задать условие выполнения цикла и изменять значение счетчика. Синтаксис цикла for таков:

1.for ( начальное значение ; условие выполнения ; приращение )

2.{

3. оператор 1;

4. оператор 2;

5. .....

6. оператор n;

7.}

Давайте теперь переиначим программу, печатающую ваше имя, под этот цикл. Вот что у нас получится:

01.//Операторы циклов - цикл for

02.

03.#include <iostream>

04.

05.using namespace std;

06.

07.int main()

08.{

09. for (int i = 1; i <= 20; i++)

10. {

11. cout << "Your name" << endl;

12. }

13.

14. return 0;

15.}

Как видите размер кода программы у нас уменьшился, стал более компактным. Легко просматриваются по параметрам цикла for наши начальные значения, условия и приращения, что очень удобно. Какими видами циклов вам удобнее пользоваться в своих программах и в каких ситуациях вы постепенно поймете на практике.

Наши рекомендации