Вопрос №521 от пользователя Dmitry Skurikhin в уроке «Модуль 4. Урок 4. Оператор SWITCH в Java.», курс «Введение в Java»
Вячеслав, спасибо. Все понятно, кроме одного вопроса. Почему все-таки нужен break в каждом case. Switch должен проверять каждый case. даже из лекции: пользователь ввел 1. case 1 - выполняется. почему пойдет выполнятся case 2 без break? пользователь ведь ввел 1. ничего не перетерлось и case 2 не должен выполняться. И правильно я понимаю, что если бы строка с case 2 шла раньше case 1, то тогда бы case 2 не выполнялся бы?
Можете пояснить все-таки почему break нужен?
сase это метка. switch переведёт выполнение программы на необходимую метку, но дальше программа начнёт выполняться построчно, как и должно быть. В случае, если программа не встречает break или return, то она просто пойдёт выполнять все строчки дальше, а соответственно выполнятся и все case. При этом иногда это свойство программисты используют в благих целях, например, если при выборе одного пункта нужно сделать всё, что предполагает другой пункт, плюс ещё пару дополнительных действий. Пример:
switch(тип_пользователя_hexlet) {
case платный_подписчик:
открыть_доступ_к_практике ();
case обычный_подписчик:
открыть_доступ_к_видео();
}
Используйте Хекслет по-максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт