Вопрос №453 от пользователя user-dcea3c8a28e5925f в уроке «Модуль 4. Урок 4. Оператор SWITCH в Java.», курс «Введение в Java»
Подскажите, с этим тестовым заданием: Что выведет на экран следующий код:
int y, count = 0;
for(int x = 3; x < 6; x = x + 1) {
try {
switch(x) {
case 3: count = count + 1;
case 4: count = count + 1;
case 7: count = count + 1;
case 9: { y = 7 / (x - 4); count += 10; }
}
} catch (Exception ex) { count = count + 1; }
}
System.out.println(count);
- 2
- 25
- 15
- 16
Почему правильный ответ 16?
- Сначала в switch идет 3 и исполняются все кейсы начиная с 3: 0+1+1+1+10=13
- потом в switch идет 4 и исполняются все кейсы начиная с 4: 13+1+1+10=25
- потом в switch идет 5 - это исключение: 25+1=26
В итоге получаем 26
В чем моя ошибка?
4
0
Во второй итерации цикла, когда x = 4, на строке с "case 9:" возникает исключение (y = 7 / (4-4) = 7 / 0). Деление на 0. Поэтому count += 10 не исполняется. Выполняется обработка исключения, count = count + 1. В дальнейшем count не меняется.
3
спасибо, понял. скажите, а что происходит в программе, когда x=5, ведь такого case нет? не будет ли это также исключением?
0
Такая ситуация не является исключением. Просто ни один из случаев не выполняется.
Если бы был default, то выполнился бы он.
3
спасибо
0
Используйте Хекслет по максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт
Рекомендуемые программы
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.





Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
18 мая
16 месяцев


