Вопрос №453 от пользователя user-dcea3c8a28e5925f в уроке «Модуль 4. Урок 4. Оператор SWITCH в Java.», курс «Введение в Java»

user-dcea3c8a28e5925f

Подскажите, с этим тестовым заданием: Что выведет на экран следующий код:

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

Anton Alexanin

Во второй итерации цикла, когда x = 4, на строке с "case 9:" возникает исключение (y = 7 / (4-4) = 7 / 0). Деление на 0. Поэтому count += 10 не исполняется. Выполняется обработка исключения, count = count + 1. В дальнейшем count не меняется.

3

user-dcea3c8a28e5925f

спасибо, понял. скажите, а что происходит в программе, когда x=5, ведь такого case нет? не будет ли это также исключением?

0

Anton Alexanin

Такая ситуация не является исключением. Просто ни один из случаев не выполняется.

Если бы был default, то выполнился бы он.

3

user-dcea3c8a28e5925f

спасибо

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
18 мая 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
18 мая 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
18 мая 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
18 мая 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
18 мая 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
18 мая 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
18 мая 5 месяцев