Циклы. Общая информация

Циклы предназначены для повторяющегося выполнения одних и тех же инструкций по условию. Имеется несколько разновидностей инструкций циклов:

•          Цикл с параметром for
•          Цикл с предусловием while

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


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

Циклы нужны для того, чтобы повторять выполнение некоторых участков кода программы, например, чтобы вывести на экран четные числа от 2 до 20.  Конечно, можно написать и вот такой код…


…но выгладит это довольно грустно. Еще грустнее станет, в том случае, если нам нужно вывести какой-то текст перед числом. Ведь придется добавить его в каждую строку программы. Если же вдруг таким образом понадобится вывести 50 и более четных чисел, то наверняка возникнет ощущение, что надо что то менять!


В общем циклы как раз и нужны для того, чтобы компьютер сам выполнял рутинную работу. Для того, чтобы написать более короткий код, который будет выполнять вывод четных чисел, можно использовать цикл while.  Запустив такую программу, вы легко убедитесь, что результат точно такой же, как и при запуске первого варианта кода.


Новый код проще модифицировать и дорабатывать. Замедлим время, и более подробно разберемся с фрагментом представленного кода.



1 шаг - создание переменной i со значением 0


2 шаг - по ключевому слову while С++ понимает что это цикл


3 шаг - так как условие истинно, то есть 0<20 то выполняется код внутри операторных скобок


4 шаг - строка кода i=i+2 присваивает переменной i её же собственное значение увеличенное на 2


5 шаг - вывод значения переменной на экран


Однократное выполнение какого-либо действия внутри цикла называется итерацией


6 шаг - после завершения итерации условие снова будет проверено, и если оно истинно (а оно истинно, так как 2<20), то будет выполнена следующая итерация. Все повторяется!

Переменная i будет увеличена на 2 и выведена на экран, затем все повторится еще раз и еще раз, пока условие i<20 является истинным. После завершения 10 итерации значение переменной будет равно 20 и условие станет ложным, так как 20 не меньше 20! После этого цикл завершится и будет выполнена последняя строка программы.

Тело цикла, а это все строки кода внутри операторных скобок после ключевого слова while, может быть сложнее, чем просто вывод монотонно возрастающих чисел. Например такой код например, напечатает напротив каждого символа строки (то есть напротив каждой буквы), его ASCII код. Будет выведен на экран первый символ, через пробел его ASCII код, а потом переменная i будет увеличена на 1.



Но, существует не только цикл, в котором число шагов неизвестно, и где код выполняется до тех пор пока не наступит некоторое условие, но и циклы в которых это число шагов заранее определено. В этом случае программа просто считает эти шаги, так же как человек считает заранее известное количество ступенек, перемещаясь из точки A в точку B.


Такая конструкция получила название for. Запись каждого цикла for невозможна без основных частей.
  • Объявление счетчика (например, int i=0)
  • Ключевое слово (for)
  • Проверяемое условие (Например, i<=10)
  • Операция над счетчиком (Например, i++(i--) или i=i+1 (i=i-1))

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

Рассмотрим на примере программы, выводящей значения от 0 до заданного значения. Для цикла for в первую очередь выполняется блок инициализации, и выполняется он только один раз! После этого осуществляется проверка условия. Если условие истинно, то выполняется тело цикла, в фигурных скобках. Затем происходит изменение счетчика. Затем все повторится еще раз и еще раз, пока условие является истинным. После завершения итераций условие станет ложным! После этого этот цикл завершится, условие будет ложным, произойдет выход из цикла.

 

 

Последнее изменение: Tuesday, 18 April 2023, 14:48