Итоги
В этом уроке вы узнали, что:
- Цикл повторяет блок кода. Каждое выполнение блока — это итерация. Всегда записывайте блок в фигурных скобках.
while (условие) { ... }повторяет блок, пока условие истинно. Что-то в блоке должно меняться, чтобы в какой-то момент условие стало ложным. Иначе цикл никогда не закончится, а в этих упражнениях программу останавливают через 5 секунд.- У
for (int i = 1; i <= 10; i++) { ... }три части: начало выполняется один раз, условие проверяется перед каждой итерацией, а шаг выполняется после каждой итерации.i--считает в обратную сторону, аi += 5— пятёрками. Переменнаяiсуществует только внутри цикла. - Используйте
for, когда известно, сколько раз выполнится цикл, иwhile, когда неизвестно. for (int i = 0; i < numbers.size(); i++)проходит по индексам вектора. Ставьте<, потому что последний индекс — этоsize() - 1.- Цикл
forпо диапазону проходит по элементам один за другим:for (int number : numbers),for (std::string name : names)илиfor (char character : text). Переменная хранит копию каждого элемента. - Без
std::endlв цикле вывод продолжается в той же строке. Заканчивайте строку после цикла. - Типичные шаблоны: сумма (переменная, которая перед циклом равна 0 и прибавляет каждое значение с помощью
+=), среднее (сумма, делённая наsize(); собирайте сумму вdouble, иначе целочисленное деление отбросит дробную часть), подсчёт (count++внутриif), наибольшее значение (начните с первого элемента и запоминайте каждый больший) и построение нового вектора (push_back()внутриif). breakзаканчивает весь цикл, например когда вы нашли то, что искали.continueпропускает остаток текущей итерации и переходит к следующей.- Циклы можно вкладывать друг в друга: внутренний цикл проходит целиком на каждой итерации внешнего.
Дальше вас ждёт ещё один небольшой проект: плейлист для поездки в школу на автобусе. А в уроке про функции вы научитесь давать фрагменту кода имя и запускать его, когда нужно, например функцию, которая считает среднее для любого вектора чисел.
Задание
- 1
Потренируемся на чеке из магазина. Векторы
itemsиpricesсвязаны:prices[0]— ценаitems[0],prices[1]— ценаitems[1]и так далее. Пройдите по обоим одним циклом с индексом и выведите каждый товар с его ценой:хлеб: 35,молоко: 25,сыр: 89ияблоки: 42, каждый в своей строке. - 2
В том же цикле сложите цены. После цикла выведите итог в виде
Итого: 191. - 3
Наконец, выведите название самого дорогого товара в виде
Самый дорогой: сыр. Ищите наибольшую цену так, как вы учились, но запоминайте её индекс, а не цену: начните с индекса0, и когдаprices[i]больше цены под сохранённым индексом, запоминайтеi. После цикла выведите товар с этим индексом.