023 Java Return Break Continue

Операторы перехода break, continue, return — введение в Java 023 #

Оператор break #

пример работы оператора break

пример работы оператора break

С оператором break мы познакомились в шестом уроке во время знакомства с оператором выбора Switch. С помощью break мы выходим из вариантов выбора.

Прерывание цикла #

С помощью break можно выходить из цикла.

public static void searchFor () {
    for (int i = 0; i <= 20; i++) {
        if (i == 4) {
        break; // выйти из цикла при i равной 4.
        }
        System.out.println("Значение i: " + i);
    }
    System.out.println("Цикл завершен.");
}

Я могу себе представить такой вариант выхода из бесконечных методов или рекурсивных, где через оператор break мы указываем условия выхода.

// Использование break для выхода из while-цикла.
import java.util.Scanner;

class UserInputSum {
   public static void main(String[] args) {

      Double number, sum = 0.0;
      Scanner input = new Scanner(System.in);
      
      while (true) {
         System.out.print("Enter a number: ");
         number = input.nextDouble();
         
         if (number < 0.0) {
            break;
         }
         
         sum += number;
      }
      System.out.println("Sum = " + sum);
   }
}

В языках постарше Java был оператор goto - перейти к определённой строчке. Break не должен и не может заменить оператор, который в Java не внесли создатели. Но зоны видимости и break позволяют делать интересные вещи:

public class MyBreak {
	static void quarantine(boolean quarantine) {
	    // мы создаём зону
		quarantineZone: 
		{
			if (quarantine) {
				break quarantineZone; // выход из зоны карантина
			}
			System.out.println("Мы в картантине");
		}
	}
}

Но я буду согласен с вами, если вы скажите, что решить вопрос с карантином можно было бы и через if-else.

Оператор continue #

Оператор continue имеет смысл и стоит использовать только в циклах. С его помощью можно завершить шаг и перейти к следующему кругу.

// Демонстрирует continue.
public class MyContinue {

  public static void main(String[] args) {
    for (int i = 0; i < 10; i++) {
      System.out.print(i + " ");
      if (i % 2 == 0) {
        continue;
      }
      System.out.println("");
    }
  }
}
/* Вывод в терминале
0 1
2 3
4 5
6 7
8 9
*/

Оператор return #

Return мы знаем из урока номер 12 про методы.

Оператор return используют для выполнения явного выхода из метода. Оператор можно использовать в любом месте метода для возврата управления тому объекту, который вызвал данный метод. Таким образом, return прекращает выполнение метода, в котором он находится.

// Демонстрирует return.
public class MyReturn {
	static void quarantine(Boolean quarantine) {
		quarantineZone:
		{
			if (quarantine) {
				return; // выход из программы
			}
			System.out.println("Мы в картантине");
		}
	}
}

Как мы видим return можно использовать и в исполняем методе, а не только в возвратном. Не уверен, что эти операторы с завтрашнего дня надо активно использовать, но знать их надо.

Метки #

“quarantineZone:” в предыдущем коде - метка.

Дополнительные ссылки #

Домашнее задание #

  • Напишите программу, которая выводит на консоль простые числа в промежутке от [2, 100].
    Используйте для решения этой задачи оператор “%” (остаток от деления) и циклы. Используйте циклы с метками.