Я встретил эти вариации оператора switch, и мне интересно узнать, в каких случаях его можно использовать?Странная семантика состояния переключателя
Странность - это потому, что она не имеет случаев до значения по умолчанию, только после. И не имеет инструкции break
. Но отлично работает.
Вот код:
public static Item newItem() {
switch (rand.nextInt(3)) {
default:
case 0:
return new Scissors();
case 1:
return new Paper();
case 2:
return new Rock();
}
}
Как это может быть действительно выполнить в этом странном стиле. Я пытался сделать легкую отладку, все работает отлично, она возвращает точность одного явного экземпляра.
Вопрос: почему мы должны написать:
default:
case 0:
вместо Типичное использование:
case 0:
default:
Компилятор не позволял изменять или комментировать default
заявление.
Любые предложения?
PS пожалуйста, не пишите глупые объяснения, как делает switch
работы. ясно. пишите только об этом явном примере.
BTW Я встретил этот мир кода в Thinking in Java by Bruce Eckel.
Возможный дубликат [Почему нам нужно перерыв после заявления о делах?] (Http://stackoverflow.com/questions/2710300/why-do-we-need-break-after-case-statements) –
'return' заставляет коммутатор выйти из метода, поэтому ни один из следующих параметров не выполняется. –