Циклы в C++
Иногда необходимо повторять одно и то же действие несколько раз подряд. Для этого используют циклы. В этом уроке мы научимся программировать циклы на C++, после чего посчитаем сумму всех чисел от 1 до Цикл for Описание синтаксиса Пример кода Цикл while Цикл do while
Цикл for Если мы знаем точное количество действий (итераций) цикла, то можем использовать цикл for. Синтаксис его выглядит примерно так: for (действие до начала цикла; условие продолжения цикла; действия в конце каждой итерации цикла) { инструкция цикла; инструкция цикла 2; инструкция цикла N;} Итерацией цикла называется один проход этого цикла Существует частный случай этой записи, который мы сегодня и разберем: for (счетчик = значение; счетчик < значение; шаг цикла) { тело цикла; } Счетчик цикла это переменная, в которой хранится количество проходов данного цикла.
Описание синтаксиса 1. Сначала присваивается первоначальное значение счетчику, после чего ставится точка с запятой. 2. Затем задается конечное конечное значение счетчика цикла. После того, как значение счетчика достигнет указанного предела, цикл завершится. Снова ставим точку с запятой. 3. Задаем шаг цикла. Шаг цикла это значение, на которое будет увеличиваться или уменьшаться счетчик цикла при каждом проходе.
Пример кода Напишем программу, которая будет считать сумму всех чисел от 1 до #include using namespace std; int main() { int i; // счетчик цикла int sum = 0; // сумма чисел от 1 до setlocale(0, ""); for (i = 1; i <= 1000; i++) // задаем начальное значение 1, конечное 1000 и задаем шаг цикла 1. { sum = sum + i; } cout << "Сумма чисел от 1 до 1000 = " << sum << endl; return 0; }
Если мы скомпилируем этот код и запустим программу, то она покажет нам ответ: Это и есть сумма всех целых чисел от 1 до Если считать это вручную, понадобится очень много времени и сил. Цикл выполнил всю рутинную работу за нас. Заметьте, что конечное значение счетчика я задал нестрогим неравенством ( <= меньше либо равно), поскольку, если бы я поставил знак меньше, то цикл произвел бы 999 итераций, т.е. на одну меньше, чем требуется. Это довольно важный момент, т.к. здесь новички часто допускают ошибки, особенно при работе с массивами (о них будет рассказано в следующем уроке). Значение шага цикла я задал равное единице. i++ это тоже самое, что и i = i + 1.
Цикл while Когда мы не знаем, сколько итераций должен произвести цикл, нам понадобится цикл while или do...while. Синтаксис цикла while в C++ выглядит следующим образом. while (Условие) { Тело цикла; } Данный цикл будет выполняться, пока условие, указанное в круглых скобках является истиной. Решим ту же задачу с помощью цикла while. Хотя здесь мы точно знаем, сколько итераций должен выполнить цикл, очень часто бывают ситуации, когда это значение неизвестно.
Ниже приведен исходный код программы, считающей сумму всех целых чисел от 1 до #include using namespace std; int main() { setlocale(0, ""); int i = 0; // инициализируем счетчик цикла. int sum = 0; // инициализируем счетчик суммы. while (i < 1000) { i++; sum += i; } cout << "Сумма чисел от 1 до 1000 = " << sum << endl; return 0; }
После компиляции программа выдаст результат, аналогичный результату работы предыдущей программы. Но поясним несколько важных моментов. Я задал строгое неравенство в условии цикла и инициализировал счетчик i нулем, так как в цикле while происходит на одну итерацию больше, потому он будет выполняться, до тех пор, пока значение счетчика перестает удовлетворять условию, но данная итерация все равно выполнится. Если бы мы поставили нестрогое неравенство, то цикл бы закончился, когда переменная i стала бы равна 1001 и выполнилось бы на одну итерацию больше.
Затем мы описываем условие цикла «пока переменная i меньше 1000 выполняй цикл». При каждой итерации цикла значение переменной счетчика i увеличивается на единицу внутри цикла. Когда выполнится 1000 итераций цикла, счетчик станет равным 999 и следующая итерация уже не выполнится, поскольку 1000 не меньше Выражение sum += i является укороченной записью sum = sum + i. После окончания выполнения цикла, выводим сообщение с ответом.
Цикл do while Цикл do while очень похож на цикл while. Единственное их различие в том, что при выполнении цикла do while один проход цикла будет выполнен независимо от условия. Решение задачи на поиск суммы чисел от 1 до 1000, с применением цикла do while. #include using namespace std; int main (){ setlocale(0, ""); int i = 0; // инициализируем счетчик цикла. int sum = 0; // инициализируем счетчик суммы. do {// выполняем цикл. i++; sum += i; } while (i < 1000); // пока выполняется условие. cout << "Сумма чисел от 1 до 1000 = " << sum << endl; return 0;}
Принципиального отличия нет, но если присвоить переменной i значение, большее, чем 1000, то цикл все равно выполнит хотя бы один проход. Попрактикуйтесь, поэкспериментируйте над собственными примерами задач. Циклы очень важная вещь, поэтому им стоит уделить побольше внимания.
Спасибо за внимание