По какой-то причине,переключатель заявление не отображается правильный ответ
int x = 5;
switch (x) {
case 3 : x += 1;
System.out.println(x);
case 4 : x += 2;
System.out.println(x);
case 5 : x += 3;
System.out.println(x);
case 6 : x++;
System.out.println(x);
case 7 : x += 2;
System.out.println(x);
case 8 : x--;
System.out.println(x);
case 9 : x++;
System.out.println(x);
}
(Игнорируйте СОП), результат этого переключателя заявление продолжает давать мне 11, когда рассчитывается на бумаге я получаю 10. Я думаю, что это имеет что-то делать с приращениями, но не может понять, почему он показывает 11. Я что-то упустил?
Так переключатель заявление автоматически делает следующий случай в его теле, если нет перерыва после первого случая? Я думал, что после x = 8 в случае 5, случай будет идти до 8, затем 7, затем 9 – X1XX
@PatrickBui: Да к вашему первому предложению, а не к вашему второму. Он находит первое совпадение и выполняет каждую строку после (по порядку), пока не попадет в оператор break. – Gerrat
@PatrickBui Нет переключателя не работает. Просто подумайте, что он работает так: сначала он попал в оператор 'switch()' и основывался на значении в этот момент, перепрыгнул на соответствующую метку и выполнил все инструкции, начиная с этой метки –