Как создать блок кода для оператора case для переключателя, который присваивает значение?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как создать блок кода для оператора case для переключателя, который присваивает значение?

Сообщение Anonymous »

Как вы знаете, в Java 14 появились выражения Switch, операторы переключения, которые возвращают значение. (См. JEP 361.)
Но, похоже, он не работает с операторами case, имеющими блоки кода. Я не уверен, что у меня неправильный синтаксис или это запрещено.
Мне любопытно, потому что это будет несовместимо с операторами переключения без r-значения (первый пример) . Плюс я видел это на других языках.
static void foo(String x) {
// this works
switch(x) {
case "hi" -> {
System.out.print("got hi");
System.out.println("hello");
}
default -> System.out.println("bye");
}

// this works
var y = switch(x) {
case "hi" -> "hello";
default -> "bye";
};

// is this possible?
var z = switch(x) {
case "hi" -> {
System.out.println("got hi");
return "hello"; // return "hello" to the z
}
default -> "bye";
};
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... ns-a-value
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»