Страж when
Страж when - это ключевое слово, которое используется
в операторе switch для добавления дополнительного
логического условия к метке case. Если основное
значение совпало с меткой, но условие стража не выполнено,
управление переходит к следующей подходящей ветке.
В качестве параметра страж принимает логическое выражение,
которое может использовать переменные из области видимости.
Синтаксис
switch (value)
{
case pattern when condition:
// code
}
Пример
Давайте проверим число: если оно больше 0,
выведем сообщение о положительном значении, иначе -
о неположительном:
public class Main
{
public static void main(String[] args)
{
int value = 5;
switch (value)
{
case Integer i when i > 0:
System.out.println("positive");
break;
default:
System.out.println("not positive");
}
}
}
Результат выполнения кода:
"positive"
Пример
Давайте обработаем строку: если она начинается с "a",
выведем одно сообщение, иначе - другое:
public class Main
{
public static void main(String[] args)
{
Object obj = "abcde";
switch (obj)
{
case String s when s.startsWith("a"):
System.out.println("starts with a");
break;
case String s:
System.out.println("other string");
break;
default:
System.out.println("not a string");
}
}
}
Результат выполнения кода:
"starts with a"
Смотрите также
-
оператор
switch,
который выбирает ветку выполнения -
ключевое слово
case,
которое задает метку в операторе switch -
ключевое слово
default,
которое задает ветку по умолчанию -
оператор
instanceof,
который проверяет тип объекта