Когда Вам необходимо, чтобы одно и то же самое действие выполнилось несколько раз или до определенного условия, здесь нам на помощь приходят циклы.
В языке Java есть несколько способов создать циклы. Как Вы уже могли догадаться, мы будем рассматривать их все.
Первый способ объявить цикл – это использовать такую конструкцию: for (условие начала цикла; условие конца; шаг, с которым будет идти цикл) { тело цикла }
Перейдем сразу к примерам. Допустим у нас есть задача вывести фразу “привет мир” 10 раз. Если не использовать циклы, то можно просто написать System.out.println(“Привет мир”); десять раз и решим задачу. Давайте же для это цели используем циклы. Создайте новый класс и назовите его например CuclesInJava. Теперь объявите условие цикла (пусть это будет 0), условие конца – 10, и шаг. Будем идти с шагом в единицу. В тело цикла поместите строку System.out.println(“Привет мир”);
Вот пример кода:
Результатом такого кода будет 10 строк подряд фразы “Hello world!”.
Как насчет написать что то более сложное. Мы уже выучили условные операторы и базовые операции с переменными. Давайте их и используем.
Напишем простое приложение, которое будет выводить строку с оповещением каждый раз, когда шаг + некоторая переменная будет равна 5. У меня очень плохо с фантазией))
Для начала напишем код, который будет принимать на вход переменную введенную из консоли. В предыдущей статье, я давал пример этого кода и мы условились, что потом я объясню, как он работает и откуда пошел. А сейчас мы просто будем им пользоваться:
int variable = scanner.nextInt();//мы дойдем до этого постепенно и тогда будет понятно, как это работает
Далее нужно написать цикл, который будет начинаться с нуля и считать до десяти (как в предыдущем примере). В тело цикла запишем условный оператор, который будет проверять, является эта переменная равна 5 и если это так, то будем выводить строку “ОК”. Вот, что у меня получилось:
public class CuclesInJava {
public static void main(String[] args) {
System.out.println("Enter your number");
Scanner scanner = new Scanner(System.in);//пример кода ввода с консоли
int variable = scanner.nextInt();//мы дойдем до этого постепенно и тогда будет понятно, как это работает
for (int i = 1; i < 10; i++) {
int newVariable = i + variable;
if (newVariable==5) {
System.out.println("OK" + " our variable is on " + i + " step");
}
}
}
}
Получилось не очень замысловато. Этим примером, я хотел показать, как можно использовать циклы с ветвлениями в связке.
Следующим способом объявить циклы является конструкция: while(условие истинно){блок кода, который нужно выполнить}. У данной конструкции есть другая форма:
do{блок кода, который нужно выполнить}while(условие истинно). Отличие первого от второго в том, что второе выполнить один цикл независимо истинно условие или нет. Можете сами подумать: сначала мы выполняем кода, а потом уже проверяем условие. И даже если условие будет не истинным, код все равно выполниться один раз, в том время, когда в первом виде конструкции сначала проверяется условие и пока оно не будет истинным, код не выполнится.
Пример:
Код должен быть интуитивно понятен. Думаю, стоит упомянуть, что с помощью конструкций while и do-while можно “зациклить” программу если не прописать или неправильно прописать условие выхода из цикла. Посмотрите на пример выше и подумайте, что было, если бы я написал не i–, а i++; или вместо i>0, i<0. Моя программа никогда не вышла бы из цикла и продолжала бы выводить строку Hello world! до тех пор, пока не завис компьютер. Поэтому, будьте очень осторожными с циклами и всегда следите, чтобы из них Ваша программа могла выйти или закончить работу.
Ну и пример с do-while:
На этом, думаю, можно закончить статью о циклах в Java. Как видите, конструкции не очень сложны, но очень полезны. Особенно полезными они будут, когда мы познакомимся с массивами и строками.
“с помощью конструкций while и do-while можно «зациклить» программу если не прописать или неправильно прописать условие выхода из цикла. ”
Почему только с while и do-while? А с помощью конструкции for разве нельзя “зациклить” так чтобы программа не вышла из цикла?