Философия программирования на C++ Выпуск 15. Циклы.
Всем привет! Сегодня мы перейдем к следующей теме - циклы.
Мы уже научились разветвлять программу (то есть делать разное поведение программы в зависимости от чего-либо), теперь осталось научиться писать циклы - и можно будет уже написать абсолютно любую программу (хотя и с текущими знаниями это будет сделать сложно, но теоретически возможно).
Начнем с простой программки, считающей сумму всех введенных чисел, пока не будет введен 0.
Итак, здесь для нас из нового только слово while. Это ключевое слово означает один из видов цикла - наиболее похожий на условия. Главное отличие от условия в том, что цикл "зацикливается" - то есть код внутри него повторяется до тех пор, пока (while) inputNumber (введенное число) не равно нулю.
Если условие внутри while (<условие>) выполняется (true, истинно) - то выполняется код внутри него, в конце это условие
проверяется снова - и так до тех пор, пока условие выполняется. Как только пользователь введет 0, условие inputNumber != 0 вернет false (ложь) и код перейдет к строке за циклом - вывод суммы на экран, и дальше уже программа завершится.
Этот вид циклов наиболее простой для понимания, поскольку он очень похож на if. Единственная проблема - в приведенной программе повторяется один участок кода в двух местах. Это - очень плохой стиль программирования. Всегда и везде необходимо добиваться того, чтобы код не
повторялся. Здесь есть несколько вариантов, но мы рассмотрим вариант с другим видом цикла while:
Итак, здесь появилось еще одно ключевое слово - do! В чем отличие этой формы от того, что мы использовали в предыдущей программе? Единственное отличие заключается в том, что здесь в первый раз условие выхода из цикла не(!) проверяется. Каким бы ни было inputNumber, тело цикла выполнится в любом случае как минимум один раз. За счет этого нам удалось сократить программу, что очень даже хорошо.
Итак, сегодня мы узнали о циклах while
(пока условие выполняется - делать тело цикла) и do..while (делать тело цикла, потом проверять условие).