Switch Statement
Часть раздела Основы путешествия по Java на Coddy — урок 29 из 73.
Оператор switch похож на многопутевой оператор if. Вместо оценки одного условия он проверяет значение переменной на соответствие нескольким случаям и выполняет код, связанный с совпадающим случаем.
Вот базовая структура оператора switch:
switch (variable) {
case value1:
// Code to execute if variable equals value1
break;
case value2:
// Code to execute if variable equals value2
break;
// ... more cases
default:
// Code to execute if no case matches
}- Ключевое слово
switchсопровождается переменной, которую вы хотите протестировать, в круглых скобках. - Каждый
caseпредставляет возможное значение переменной. - Код внутри каждого
caseвыполняется, если переменная совпадает со значением этого случая.
- Оператор
breakкритически важен; он завершает выполнениеswitchпосле обработки соответствующего случая. Без него выполнение «протечёт» в следующий случай. - Случай
defaultявляется необязательным и выполняется, если ни один другой случай не совпадает.
Вот пример:
int day = 3;
String dayName;
switch (day) {
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
// ... cases for other days
default:
dayName = "Invalid day";
}Вы также можете объединить несколько случаев в один:
int day = 3;
String dayName;
switch (day) {
case 1:
case 2:
case 3:
dayName = "Start of week";
break;
// ... cases for other days
default:
dayName = "Invalid day";
}Задание
НовичокСоздайте программу, которая принимает номер месяца (1 — январь, 2 — февраль и т. д.) и выводит сезон, к которому он относится. Используйте оператор switch для логики.
Сезоны и соответствующие им месяцы:
- Winter: декабрь (12), январь (1), февраль (2)
- Spring: март (3), апрель (4), май (5)
- Summer: июнь (6), июль (7), август (8)
- Autumn: сентябрь (9), октябрь (10), ноябрь (11)
Для любого другого номера месяца выведите "Invalid month".
Шпаргалка
Оператор switch — это условный оператор с множественным выбором, который проверяет переменную на соответствие нескольким случаям:
switch (variable) {
case value1:
// Code to execute if variable equals value1
break;
case value2:
// Code to execute if variable equals value2
break;
default:
// Code to execute if no case matches
}Ключевые компоненты:
case: представляет возможное значение переменнойbreak: выходит из switch после выполнения случая (предотвращает проваливание в следующие случаи)default: необязательный случай, выполняемый, если ни один другой случай не совпадает
Вы можете объединять несколько случаев:
switch (day) {
case 1:
case 2:
case 3:
dayName = "Start of week";
break;
default:
dayName = "Invalid day";
}Попробуйте сами
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int month = scanner.nextInt();
String season = "";
// Напишите свой код ниже
System.out.println(season);
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else