РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
31 of 1163 menu

Оператор yield

Оператор yield используется внутри блока switch, когда этот блок применяется как выражение, то есть его результат присваивается переменной или возвращается из метода. В отличие от стрелочной формы case -> значение, оператор yield позволяет вернуть значение из многострочного блока кода. После yield указывается выражение, значение которого становится результатом всего switch. Оператор yield завершает выполнение текущей ветки, поэтому код после него в этой ветке не выполняется.

Синтаксис

switch (value) { case label: // some code yield expression; default: // some code yield expression; }

Пример

Давайте с помощью switch и yield определим, является ли число чётным. Обратите внимание, что результат switch присваивается переменной:

public class Main { public static void main(String[] args) { int num = 4; String res = switch (num % 2) { case 0: yield "even"; default: yield "odd"; }; System.out.println(res); } }

Результат выполнения кода:

"even"

Пример

Оператор yield удобен, когда в ветке case нужно выполнить несколько действий перед возвратом значения. Давайте вернём описание длины строки:

public class Main { public static void main(String[] args) { String str = "abcde"; String res = switch (str.length()) { case 5: String msg = "length is five"; yield msg; default: yield "other length"; }; System.out.println(res); } }

Результат выполнения кода:

"length is five"

Пример

Давайте используем yield вместе с новым синтаксисом case без двоеточия, что делает код более компактным:

public class Main { public static void main(String[] args) { int day = 3; String res = switch (day) { case 1, 2, 3, 4, 5: yield "weekday"; case 6, 7: yield "weekend"; default: yield "unknown"; }; System.out.println(res); } }

Результат выполнения кода:

"weekday"

Смотрите также

  • оператор switch,
    который выбирает ветку выполнения
  • оператор case,
    который задаёт ветку в switch
  • оператор default,
    который задаёт ветку по умолчанию
  • оператор return,
    который возвращает значение из метода
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить