2015-04-15 6 views
8

Gdybym miał to:Posiadanie kontynuować w przypadku domyślnym w instrukcji switch

do { 
    int x = scannerScan.nextInt(); 

    switch(x) 
    { 
     case 1: 
      System.out.println("Stuff"); 
      break; 
     case 2: 
      System.out.println("Pink cows are fluffy and can fly."); 
     default: 
      continue; 
    } 
} 
while(true); 

Co by się stało, gdyby miały być osiągnięte domyślny przypadek? Próbowałem znaleźć rzeczy w Internecie i Stackoverflow, ale nie mogłem znaleźć nic na temat kontynuacji w domyślnym przypadku, który miał do czynienia z językiem Java.

Odpowiedz

10

continue oświadczenie w pętli

continue stwierdzenie pomija bieżący iteracji for, while, lub do-while pętli. Nieoznaczona forma przeskakuje na koniec najgłębszego ciała pętli i ocenia wyrażenie logiczne, które kontroluje pętlę . [...]

W twoim kodzie pętla while(true); będzie kontynuowana. Instrukcja nie ma wpływu na blok kodu switch.

+0

Ma to sens. Trochę się spieszyłem, więc nie mogłem wymyślić dobrego warunku boolowskiego. Ale tak, to ma sens. – Ungeheuer

+0

Przy okazji, kiedy cytujesz z miejsc, powinieneś to przypisać. – Radiodef

+0

@Radiodef dzięki za wskazówkę, cytowane źródło jest [tutaj] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html) – MaxZoom

8

continue wyciągi w oświadczeniach switch nie są specjalne. Przeskoczyłby on do stanu pętli (koniec korpusu pętli), tak jak gdyby znajdował się wewnątrz pętli, ale poza nią: switch.

W tym konkretnym fragmencie kodu skutecznie nic nie robi.

6

Porównaj break statement:

A break oświadczenie próby przeniesienia kontroli do najbardziej wewnętrznej otaczającej switch, while, do lub for oświadczenie & hellip;

Z continue statement:

A continue oświadczenie próby przeniesienia kontroli do najbardziej wewnętrznej otaczającej while, do lub for oświadczenie & hellip;

Zatem continue dotyczy pętli do...while oraz:

& hellip; następnie natychmiast kończy bieżącą iterację i rozpoczyna nową.