Циклы
ВАЖНО: ниже находится устаревшая версия статьи. Актуальную можно найти здесь: ссылка.
Первое знакомство
Цикл – синтаксическая языковая конструкция, позволяющая выполнять однотипные действия определенное количество раз. При этом количество повторений (итераций) может быть как известно заранее, так и нет.
Рассмотрим подробнее на основании статьи: https://metanit.com/java/tutorial/2.6.php (Не забивайте на вопросы для самопроверки и упражнения!)
Также видео:
Если вы уже самостоятельно изучили массивы, в качестве закрепляющего материала по циклам могу предложить данные 3 коротких видео:
Тем, кто с массивами еще не знаком – вероятно, будет рано, можете пересмотреть после следующего урока.
Итак, что же стоит отметить для себя по циклам:
· Синтаксис цикла for;
· Отличие между for и while;
· Отличие от while и do-while;
· Способы создания бесконечного цикла;
· Назначение операторов break и continue.
Также несколько важных моментов, которые редко пишут в статьях и еще реже в них читают:
1. Цикл for принято использовать в тех ситуациях, когда количество производимых итераций заранее известно;
2. Следуя из п.1 – никогда не реализуйте бесконечный цикл через for;
3. Цикл while – наоборот, обычно используется для сценариев, когда количество повторений заранее не прогнозируемо;
4. Цикл do-while в целом редкий в реальном использовании инструмент. Но идеологически он ближе к while;
5. Изменение переменной-итератора (в примерах – обычно int i) в теле (то, что между {}) цикла for – недопустимо. Синтаксически это не является ошибкой, но на практике усложняет восприятие кода;
6. Не рекомендуется использовать в цикле for операторы break и continue. Поскольку это нарушает п.1.
Эти правила могут быть не усвоены сейчас. Но искренне надеюсь, что они будут восприниматься как данность к моменту, когда вы напишете свою первую строчку кода на реальном проекте.
Также следует отметить, что мы можем в любом нужном нам виде совмещать использование различных языковых конструкций: использовать условные конструкции в циклах, циклы в условных конструкциях, циклы в циклах – главное, чтобы такое использование было обосновано.
С теорией на сегодня все!

Переходим к практике. Часть заданий может показаться знакомой:
Задача 1:
Ввести с клавиатуры целое число. Вывести в консоль его факториал.
Задача 2:
Ввести с клавиатуры целое число. Вывести в консоль сумму цифр введенного числа.
Задача 3:
Написать программу, которая принимает длину и ширину прямоугольника (2 целых числа). Нарисовать в консоли заданный прямоугольник, используя “-“ и “|”. Углы прямоугольника обозначить символом “ “. Каждая единица длины должна обозначаться одним символом “-“, каждая единица ширины – символом “|“.
Задача 4:
Ввести с клавиатуры целое число (Число 2). Для каждого из чисел от 1 до 10 выполнить:
Если число1 четное, вывести сумму двух чисел (пр.1), если нет - разность(пр.2). Также если числа равны - вывести надпись "числа равны!".
пр1.: "Число1 + Число2 = Сумма", где число1 - значение 1го числа (от 1 до 10), число2 - значение введенного с клавиатуры числа, Сумма - результат сложения.
пр2.: "Число1 - Число2 = Разность", где число1 - значение 1го числа (от 1 до 10), число2 - значение введенного с клавиатуры числа, Разность - результат вычитания.
Задача 5:
Выводить на экран "Не угадал!" до тех пор, пока с клавиатуры не будет введено число 1. Запрашивать число с клавиатуры:
Вариант 1: перед выводом на экран "Не угадал!"
Вариант 2: после вывода на экран "Не угадал!"
Подумать, где стоило бы использовать цикл do-while, а где – нет.
Если что-то непонятно или не получается – welcome в комменты к посту или в лс:)
Канал: https://t.me/+relA0-qlUYAxZjI6
Мой тг: https://t.me/ironicMotherfucker
Дорогу осилит идущий!