2015-12-31 3 views
-7

Во всех образцах кода Java Я видел в Интернете и в документации, отчетность переключатель заканчивается return;:Возврат VS перерыв в операторах коммутатора Java

switch(RequestReason) 
{ 
    case LoadData: 
     // Do something. 
    return; 
} 

Но в C# и других языках, 98% времени все Я вижу break вместо возврата.

Почему Java return, а не break? Есть ли разница? Я могу успешно использовать один из них и не обнаружил никаких различий.

+2

Вы видели очень маленький образец. Вы можете использовать как 'break', так и' return'. Они оба достигают разных целей. –

+0

[Вот документация Oracle] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html) для типичного использования коммутатора в Java – CubeJockey

+2

[Здесь] (http://stackoverflow.com/ вопросы/30408240/java-break-vs-returns) дубликат, но я вне голосования. –

ответ

3

return; возвращает управление вызывающему методу, где break переходит к первой инструкции после блока switch.

+1

Большое спасибо @Sparta (и другие) за ваш ответ, и особенно за то, что вы не выбрали меня, чтобы задать глупый вопрос. – username

1

return используется для возврата к шагу, на котором он был вызван, или для прекращения дальнейшего выполнения, в то время как break используется, когда вы хотите выйти из цикла.
Для получения дополнительных объяснений перейти к link

1

В Java, вы можете также использовать break, чтобы избежать каскадного от одного элемента к другим в операторах переключения. Скорее всего, происходит то, что после того, как этот случай был выполнен, кто бы ни написал код, хотел бы, чтобы выполнение переходило к следующему методу.

switch(foo) { 
    case 1: { 
     break; 
    } 

    case 2: { 
     break; 
    } 
} 
remainder of method 

В примере выше, цель состоит в сегмент remainder of method метода для выполнения.

Если мы заменим break на return, это будет означать, что нам не нужно ничего другого из метода, и поток выполнения может выйти из него.

1

возврат будет выведен из содержащегося метода. break выйдет из области действия переключателя и не понадобится в случае по умолчанию. перерыв и возврат не являются семантически эквавалентными!

Смежные вопросы