Циклы while и for в Java
Циклы в программировании – это повторяющиеся одинаковые действия. Приведу пример из реальной жизни: "Производственная машина на конвейере наполняет бутылки пивом, пока пустые бутылки не закончатся."
Задача программиста написать алгоритм цикла для выполнения этой конкретной операции столько раз, пока условие остается истинным (есть пустые бутылки). Бутылка заполняется пивом (функция), пока (while/for) это условие верно (true), то цикл повторяется бесконечно.
Цикл состоит их трех частей:
- оператора (while, for)
- условия (обстоятельства, при которых цикл должен повторятся)
- тела (инструкции, которые должна выполнять программа)
Цикл while в Java
Пример бесконечного цикла while
В фигурных скобках while() пишем условие, что число 100, лежащее в переменной number больше, чем 10. Условие верно (true), число 100 разумеется больше 10, а раз true, то строка "I love Java", будет выводиться пока условие верно (100 всегда будет больше 10), то есть бесконечно.
В реальном мире, действия не могут быть бесконечны: "нельзя бесконечно доставать продукты из холодильнике или заливать бензин в бак." Если в программе заложено условие для бесконечного цикла, то возникнет ошибка и компьютер зависнет.
int number = 100; // объявление и инициализация переменной
while(number>10){ // условие true будет всегда
System.out.println("I love Java");
}
Получается, что булевский тип данных (true/ false) – инструмент управления, цикл повторяется, пока возвращается true, как только условие станет ложью false, цикл сам остановится.
Возвращаемое значение true:
Число 10 меньше 20 – это истина.
boolean t = 10<20;
System.out.println(t); // выведет в консоль true
Возвращаемое значение false:
Но утверждение, что число 10 больше 20 – это ложь.
boolean f = 10>20;
System.out.println(f); // выведет в консоль false
Пример работы цикла while
В переменную number помещаем цифру 10 и прописываем условие, что 10 меньше 15 (это true) и пока (while), условие будет верным, будут выполняться инструкции, написанные в теле цикла, внутри фигурных скобок.
int number = 10;
while(number<15){
System.out.println("I learn Java"); // напечатать в консоли текст
number = number+1; // сколько раз напечатать текст
}
Что значит выражение number = number+1;?
В переменную number мы кладем её текущее значение и прибавляем единицу, тем самым, увеличивая значение хранящееся в переменной на единицу.
10+1=11
11+1=12
12+1=13
13+1=14
14+1=15
Фраза "I learn Java", при каждом проходе цикла выведется 5 раз. Кстати, на языке программирования, каждый новый повтор цикла называется итерацией.
И вот когда значение переменной станет 15, условие цикла while( 15<15), перестанет быть верным (false) и цикл остановится.
Цикл for в Java
Между циклами while и for нет принципиального различия, все дело в форме записи, как именно писать код. Для наглядности выполним предыдущий пример в цикле for. Только заменим название переменной number на короткое – i.
for (int i = 10; i < 15; i = i+1){ // i++
System.out.println("I learn Java");
}
Разница в том, что инициализация, условия работы циклы и инструкции – все эти три компонента записываются внутри круглых скобок оператора for.
Новичку на заметку
Обратите внимание, что выражение i = i+1 идентично этому i++. В среде разработчиков принято писать укороченный вариант.
Цикл do-while
У цикла do-while есть принципиальное отличие от цикла while. Пока 5 больше 10, выводится фраза "Стартует цикл while!". Условие проверку не прошло и ничего не вывелось в консоль, поскольку условие было ложно.
int a = 5;
while (a > 10) {
System.out.println("Стартует цикл while!");
}
Хорошо, зайдем с другой стороны, напишем точно такое же условие для оператора do-while и окажемся внутри цикла, несмотря на неправильное условие. Хотя бы один раз, но цикл do-while выполнится. В чем подвох?
do { // делай, то что в теле цикла
System.out.println("Цикл do-while стартовал!");
} while (a > 10); // пока верно условие
Первым делом программа видит, что надо выполнить действие (do): Вывести строку "Цикл do-while стартовал!". Выполняет один раз, а потом уже видит, что условие ложь и выходит из цикла. Отличие в том, что в цикле while сперва проверяется, а затем выполняется условие. В цикле do-while наоборот, сначала выполняется, а потом проверяется условие.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.