Задача "Счастливый пельмень" (на цикл и оператор break в Java)
- Данная статья написана командой Vertex Academy.
- Это одна из статей из нашего "Самоучителя по Java."
Условие задачи:
Существует такая традиция: при приготовлении пельменей в один из них кладут монетку на счастье. Считается, что тому, кому попадется пельмень с монеткой, улыбнется удача.
Представим, что у нас есть кастрюля, в которой лежит 10 пельменей. Один из них счастливый — а именно пятый пельмень. Давайте напишем программу, которая ищет счастливый пельмень.
Программа перебирает пельмени в кастрюле по одному, и когда доходит до пятого пельменя — напишет "Вот счастливый пельмень!" и выходит из цикла.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Test { public static void main(String[] args){ int a = 0; while (a < 10) { if (a == 4) { System.out.println("Вот счастливый пельмень!"); break; } a++; } } } |
Комментарии к задаче:
Для решения данной задачи нам необходимо использовать цикл.
1) Выбор цикла
Сейчас Вы, скорее всего, уже знаете два типа циклов — цикл while и цикл for. Для решения этой задачи можно использовать любой. Мы решили использовать while.
2) Строим каркас
Итак, сначала мы пишем цикл while, который выполняется 10 раз — как бы перебирая 10 пельменей в кастрюле. Он будет выглядеть так:
1 2 3 4 5 6 7 8 |
public class Test { public static void main(String[] args){ int a = 0; while (a < 10) { a++; } } } |
2.1) Создаем переменную
Нам необходимо создать переменную, которая будет изменяться в процессе выполнения цикла while. Поэтому перед циклом мы объявили переменную int а. Изначально она будет равна нулю.
2.2) Шаг переменной
Шаг переменной будет равен 1 — мы будем перебирать пельмень за пельменем, по одному, пока не найдем счастливый. Поэтому мы пишем:
a++;
А это, как Вы помните, то же самое, что и:
a = a + 1;
2.3) Условие цикла
Кроме того, в условии Вы видите:
while (a < 10)
Мы пишем a < 10, а не a <= 10, потому что счет начинается с нуля. Поэтому цикл выполнится 10 раз. Посмотрите сами — условие будет выполняться при следующих значениях:
0 1 2 3 4 5 6 7 8 9
Посчитайте — сколько всего цифр? 10 цифр. А, значит, и цикл выполнится 10 раз.
Может показаться, что в этом нет необходимости — начинать с 0 или 1, какая разница? Но на самом деле программисты всегда начинают счет с нуля — по ряду причин. Так что и нам стоит привыкать.
3) Добавляем условие
Сейчас наш цикл просто будет выполняться 10 раз. Но это не то, что нам нужно. Нам нужно, чтобы на 5-ом пельмене цикл прекратился, а еще вывел сообщение "Вот счастливый пельмень!" . Поэтому, мы создаем условие:
1 2 3 4 |
if (a == 4) { System.out.println("Вот счастливый пельмень!"); } |
Обратите внимание — а равняется 4, а не 5. Почему? Все по той же причине — мы начинаем с нуля. Посчитайте:
0 1 2 3 4
Как видите, 4 — это как раз пятый пельмень.
Таким образом, в сумме имеем:
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Test { public static void main(String[] args){ int a = 0; while (a < 10) { if (a == 4) { System.out.println("Вот счастливый пельмень!"); } a++; } } } |
4) Добавляем break
Как Вы знаете, оператор break заставляет программу выйти из цикла — хочет она того или нет 🙂 А это нам и нужно по условию.
Без оператора break мы имеем цикл, который по прежнему выполняется 10 раз, но на пятом элементе выводит сообщение "Вот счастливый пельмень!". Но подумайте — зачем нам выполнять цикл дальше, если мы уже нашли то, что искали?
По этой причине, если мы доходим до 5-го пельменя, нужно не просто вывести сообщение. Мы должны выйти из цикла. Сделаем это с помощью оператора break. В итоге имеем:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public class Test { public static void main(String[] args){ int a = 0; while (a < 10) { if (a == 4) { System.out.println("Вот счастливый пельмень!"); break; } a++; } } } |
Итого, наш цикл выполнился 5 раз вместо 10 раз благодаря оператору break. В консоли мы имеем:
Вот счастливый пельмень!
Хотите записаться к нам на курсы? Смотрите детальную информацию у нас на сайте.