Что такое Switch Case в Java и как его использовать?
Опубликовано: 2022-03-04Случай переключения в Java является одним из многих операторов Java, которые сообщают языку программирования, что делать. Подобно предложениям в английском языке, которые дают полное представление о тексте и включают предложения, операторы Java представляют собой команды, включающие одно или несколько выражений, которые выполняет интерпретатор Java. Проще говоря, оператор Java — это инструкция, объясняющая, что должно произойти.
Оператор Java заканчивается точкой с запятой (;) и указывает Java обрабатывать инструкции до этой точки с запятой. По умолчанию интерпретатор Java следует порядку, в котором написаны операторы, и выполняет один оператор за другим. Однако операторы, управляющие потоком программы (операторы управления потоком), такие как циклы и условные операторы, не следуют порядку выполнения по умолчанию. В этой статье основное внимание уделяется одному из таких механизмов управления выбором — оператору switch case в языке Java.
Оглавление
Что такое случай переключения в Java?
Java поддерживает три типа операторов: операторы выражения для изменения значений переменных, вызова методов и создания объектов, операторы объявления для объявления переменных и операторы потока управления для определения порядка выполнения операторов.
Оператор switch case в Java — это тип оператора потока управления, который позволяет значению выражения или переменной изменять поток управления выполнения программы через многоходовую ветвь. В отличие от операторов if-then и if-then-else оператор switch Java имеет несколько путей выполнения. Switch case в Java работает с примитивными типами данных short, byte, int и char. Начиная с JDK7, переключатель Java также можно использовать с классом String, перечисляемыми типами и классами-оболочками, которые обертывают примитивные типы данных, такие как Byte, Character, Integer и Short.
Тело оператора switch case в Java называется блоком switch. Каждый оператор в блоке switch помечен одним или несколькими вариантами или метками по умолчанию. Следовательно, оператор switch оценивает свое выражение, после чего выполняются все операторы, следующие за соответствующей меткой case.
Ниже приведен синтаксис оператора switch case:
// оператор переключения
переключатель (выражение)
{
// операторы case
// значения должны быть одного и того же типа выражения
значение случая1 :
// Заявления
перерыв; // перерыв необязателен
значение случая2 :
// Заявления
перерыв; // перерыв необязателен
// У нас может быть любое количество операторов case
// ниже приведен оператор по умолчанию, используемый, когда ни один из случаев не является истинным.
// По умолчанию разрыв не нужен.
По умолчанию :
// Заявления
}
Пример оператора switch Java
В следующем примере кода Java объявляется целое число с именем «month», значение которого представляет один из 12 месяцев года. В коде используется оператор switch case для отображения названия месяца на основе значения месяца.
открытый класс SwitchExample {
public static void main(String[] args) {
целый месяц = 6;
Строка месяцСтрока;
переключатель (месяц) {
случай 1: monthString = «Январь»;
перерыв;
случай 2: monthString = «Февраль»;
перерыв;
случай 3: monthString = «март»;
перерыв;
случай 4: monthString = «Апрель»;
перерыв;
случай 5: monthString = «Май»;
перерыв;
case 6: monthString = «Июнь»;
перерыв;
случай 7: monthString = «июль»;
перерыв;
case 8: monthString = «Август»;
перерыв;
case 9: monthString = «Сентябрь»;
перерыв;
case 10: monthString = «Октябрь»;
перерыв;
случай 11: monthString = «ноябрь»;
перерыв;
случай 12: monthString = «декабрь»;
перерыв;
по умолчанию: monthString = «Неверный месяц»;
перерыв;
}
System.out.println (строка месяца);
}
}
Выход: июнь
Назначение оператора break в случае переключения Java
Оператор break является важным аспектом случая переключателя Java, который завершает объемлющий оператор переключателя. Оператор break необходим, потому что без него операторы в блоке switch не выполнялись бы. Таким образом, независимо от выражения последующих меток case, все операторы после соответствующей метки case выполняются последовательно до тех пор, пока не встретится оператор break.
Следующий код представляет собой пример, показывающий отказ блока switch в отсутствие оператора break.
открытый класс SwitchExampleFallThrough {
public static void main(String[] args) {
java.util.ArrayList<String> будущие месяцы =
новый java.util.ArrayList<String>();
целый месяц = 6;
переключатель (месяц) {
случай 1: futureMonths.add("Январь");
случай 2: futureMonths.add("Февраль");
случай 3: futureMonths.add("Март");
случай 4: futureMonths.add("Апрель");
случай 5: futureMonths.add("Май");
случай 6: futureMonths.add("Июнь");
случай 7: futureMonths.add("Июль");
случай 8: futureMonths.add("Август");
случай 9: futureMonths.add("Сентябрь");
case 10: futureMonths.add("Октябрь");
case 11: futureMonths.add("Ноябрь");
case 12: futureMonths.add("Декабрь");
перерыв;
по умолчанию: перерыв;
}
если (futureMonths.isEmpty()) {
System.out.println("Неверный номер месяца");
} еще {
for (String monthName : futureMonths) {
System.out.println (имя месяца);
}
}
}
}
Выход:
июнь
июль
август
сентябрь
Октябрь
ноябрь
Декабрь
Приведенный выше код отображает месяц года, соответствующий целому месяцу и последующим месяцам. Здесь последний оператор break не имеет смысла, потому что поток выпадает из оператора switch. Использование оператора break полезно, поскольку делает код менее подверженным ошибкам и упрощает его модификации. Раздел по умолчанию в коде обрабатывает все значения, не регулируемые ни одним из разделов case.
Оператор переключения Java с несколькими метками case
Операторы Switch в Java также могут иметь несколько меток case. Следующий код иллюстрирует то же самое — здесь вычисляется количество дней в определенном месяце года.
класс SwitchMultiple{
public static void main(String[] args) {
целый месяц = 2;
целый год = 2020;
число дней = 0;
переключатель (месяц) {
случай 1: случай 3: случай 5:
случай 7: случай 8: случай 10:
случай 12:
количество дней = 31;
перерыв;
случай 4: случай 6:
случай 9: случай 11:
количество дней = 30;
перерыв;
случай 2:
если (((год % 4 == 0) &&
!(год % 100 == 0))
|| (год % 400 == 0))
количество дней = 29;
еще
количество дней = 28;
перерыв;
По умолчанию:
System.out.println("Неверный месяц.");
перерыв;
}
System.out.println("Количество дней = "
+ количество дней);
}
}
Выход:
Количество дней = 29
Вложенные операторы case switch Java
Вложенный переключатель — это когда вы используете переключатель как часть последовательности операторов внешнего переключателя. В этом случае нет конфликта между константами case в другом переключателе и во внутреннем переключателе, поскольку оператор switch определяет свой собственный блок.
Следующий пример демонстрирует использование вложенных операторов switch-case в Java :
открытый класс TestNest {
public static void main (аргументы String [])
{
Строковая ветвь = «CSE»;
целый год = 2;
переключатель (год) {
Дело 1:
System.out.println("Курсы по выбору: Алгебра, Продвинутый английский");
перерыв;
случай 2:
переключатель (ветвь) // вложенный переключатель
{
кейс «ЕГЭ»:
корпус «ССЕ»:
System.out.println("Курсы по выбору: Большие данные, Машинное обучение");
перерыв;
корпус «ЕЭК»:
System.out.println("Курсы по выбору: Антенная инженерия");
перерыв;
По умолчанию:
System.out.println("Курсы по выбору: Оптимизация");
}
}
}
}
Выход:
Курсы по выбору: Большие данные, Машинное обучение
Использование строк в операторах switch
Начиная с JDK7, вы можете использовать объект String в выражении оператора switch. Сравнение строкового объекта в выражении оператора switch со связанными выражениями каждой метки case происходит так, как если бы он использовал метод String.equals. Кроме того, сравнение строковых объектов в выражении оператора switch чувствительно к регистру.
В следующем примере кода отображается тип игры на основе значения строки с именем «game».
открытый класс StringInSwitchStatementExample {
public static void main(String[] args) {
Струнная игра = «Крикет»;
переключатель (игра) {
кейс «Волейбол»: кейс «Футбол»: кейс «Крикет»:
System.out.println("Это игра на открытом воздухе");
перерыв;
кейс «Игры в карты»: кейс «Шахматы»: кейс «Головоломки»: кейс «Комнатный баскетбол»:
System.out.println("Это игра в помещении");
перерыв;
По умолчанию:
System.out.println("Что это за игра?");
}
}
}
Выход:
это подвижная игра
Правила, которые следует помнить при использовании операторов переключения Java
Было бы лучше, если бы вы соблюдали определенные правила при использовании операторов переключения Java . Ниже приводится список того же:
- Значение для случая и переменная в переключателе должны иметь один и тот же тип данных.
- Операторы переключения Java не допускают дублирования значений case.
- Значение case должно быть литералом или константой. Переменные не допускаются.
- Использование оператора break внутри переключателя завершает последовательность операторов.
- Оператор break является необязательным, и если его опустить, выполнение продолжится в следующем случае.
- Оператор default также является необязательным и может встречаться в любом месте блока switch. Если он не помещен в конец, оператор break должен быть добавлен после оператора по умолчанию, чтобы пропустить выполнение последующего оператора case.
Путь вперед
Java имеет непревзойденную популярность среди программистов и разработчиков и сегодня является одним из самых востребованных языков программирования. Излишне говорить, что начинающие разработчики и инженеры-программисты, которые хотят повысить свою квалификацию для постоянно меняющегося рынка труда, должны укрепить свои навыки работы с Java.
Сертификация upGrad PG в области разработки программного обеспечения , связанная с работой , специально разработана для первокурсников и кандидатов последнего года обучения, которые хотят научиться программировать и получить работу в программном обеспечении начального уровня.
Если вам интересно, что влечет за собой 5-месячный онлайн-курс, вот несколько основных моментов, которые дадут вам представление:
- Получите стек MERN и облачные специализации
- Изучите основные навыки, такие как Java, DSA, CSS3, HTML5, AWS, MERN, базы данных SQL и NoSQL и многое другое.
- Более 500 часов контента и более 350 часов практических занятий
- Пять отраслевых проектов и более 50 живых сессий
- Подготовка к трудоустройству и профориентация
- Дискуссионные форумы и сильная партнерская сеть
Если вы хотите начать свой путь к многообещающей карьере в области разработки программного обеспечения, у вас есть шанс учиться у лучших.
1. Что такое падеж в операторе switch?
Оператор switch в Java позволяет проверять равенство переменной по списку значений. Здесь каждое значение называется случаем, и включенная переменная проверяется для каждого из случаев.
2. Каковы преимущества корпуса переключателя?
Основное преимущество операторов switch case в Java по сравнению с традиционными каскадами if-else заключается в том, что первый позволяет программистам писать более компактный, ясный и читаемый код. С другой стороны, операторы if-else часто требуют повторения кода. Таким образом, если мы хотим изменить конкретную часть кода, нам придется вносить изменения в других местах. Чтобы избежать этого трудоемкого и чреватого ошибками процесса, разумнее использовать варианты переключения.
3. В чем разница между case case и if-else?
В случае операторов switch случаи выполняются последовательно один за другим, пока не встретится ключевое слово break или не будет выполнен оператор по умолчанию. Напротив, в случае операторов if-else в зависимости от условия выполняется либо блок if, либо else.