Итоги
В этом уроке вы узнали, что:
- Цикл повторяет блок кода. Каждое выполнение блока — это итерация. Всегда записывайте блок в фигурных скобках и сдвигайте его на 4 пробела.
while (condition) { ... }повторяет блок, пока условие истинно. Что-то в блоке должно меняться, чтобы в какой-то момент условие стало ложным. Иначе цикл никогда не закончится, и в этих упражнениях программу остановят через 5 секунд (или сRuntimeError: unreachable, если число станет слишком большим). Никогда не ставьте точку с запятой после условия.for (int i = 1; i <= 10; i++) { ... }состоит из трёх частей, разделённых точками с запятой: начало выполняется один раз, условие проверяется перед каждой итерацией, а шаг выполняется после каждой итерации. Переменнаяiсуществует только внутри цикла.i--считает в обратную сторону, аi += 5— по пять. Циклfor (int i = 0; i < n; i++)выполняется ровноnраз. Внимательно выбирайте между<и<=, чтобы не ошибиться на единицу.- Используйте
for, когда знаете, сколько раз выполнится цикл, иwhile, когда не знаете. - Сумма: переменная, которая перед циклом равна 0, внутри цикла прибавляет каждое значение с помощью
+=и выводится после цикла. Для среднего преобразуйте сумму вdoubleперед делением:(double)total / count. - Подсчёт: счётчик, который начинается с 0 и увеличивается с помощью
count++внутриif. Сifиelseдва счётчика считают каждое значение ровно один раз. breakзавершает весь цикл, например когда вы нашли то, что искали.continueпропускает остаток текущей итерации и переходит к следующей.- Циклы можно вкладывать: внутренний цикл проходит целиком в каждой итерации внешнего.
printfбез\nпродолжает вывод на той же строке, аprintf("\n")после внутреннего цикла завершает строку. do { ... } while (condition);проверяет условие после блока, поэтому блок выполняется хотя бы один раз. Не забудьте точку с запятой в конце.
В следующем уроке, о массивах, вы научитесь хранить много значений под одним именем, например баллы всего класса, и перебирать их уже знакомыми вам циклами.
Задание
- 1
Потренируемся на FizzBuzz — знаменитой задаче для программистов, которая началась как детская игра в счёт. Выведите числа от 1 до 15, каждое на отдельной строке, но вместо некоторых из них выведите слово:
FizzBuzzвместо числа, которое делится и на 3, и на 5,Fizzвместо любого другого числа, которое делится на 3,Buzzвместо любого другого числа, которое делится на 5.
Число делится на 3, когда остаток от деления на 3 равен 0:
i % 3 == 0. Проверку «и на 3, и на 5» делайте первой: иначе 15 превратится просто вFizz. Вывод начинается с1,2,Fizz,4,Buzzи заканчивается14,FizzBuzz. - 2
Посчитайте слова: перед циклом создайте переменную
wordsсо значением0и увеличивайте её на 1 каждый раз, когда выводитеFizz,BuzzилиFizzBuzz. После цикла выведитеСлов: 7.