2015-04-15 8 views
8

Se ho avuto questo:Avere una continua in un caso di default in un'istruzione 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); 

cosa sarebbe successo se il caso di default sono stati da raggiungere? Ho provato a trovare cose su Internet e Stackoverflow, ma non ho trovato nulla su un continuo nel caso di default che aveva a che fare con il linguaggio Java.

risposta

10

continue economico nel ciclo

L'istruzione continue salta l'iterazione corrente di un ciclo for, while, o do-while. La forma senza etichetta salta alla fine del corpo del ciclo più interno di e valuta l'espressione booleana che controlla il ciclo . [...]

Nel proprio codice il ciclo while(true); continuerà. La dichiarazione non ha alcun effetto sul blocco di codice switch.

+0

Ha senso. Avevo un po 'di fretta, quindi non potevo pensare a una buona condizione booleana. Ma, sì, questo ha senso. – Ungeheuer

+0

A proposito, quando si cita da luoghi dovresti attribuirlo. – Radiodef

+0

@Radiodef grazie per il suggerimento, la fonte citata è [qui] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html) – MaxZoom

8

continue dichiarazioni in switch dichiarazioni non speciali. Passerebbe alla condizione di loop (la fine del corpo del loop), proprio come se fosse all'interno del loop ma all'esterno dello switch.

In questo particolare snippet di codice, non fa nulla in modo efficace.

6

Confronta break statement:

A break tentativi dichiarazione per trasferire il controllo al più interno racchiude switch, while, do, o for dichiarazione & hellip;

Con continue statement:

A continue tentativi istruzione per trasferire il controllo al più interno racchiude while, do, o for istruzione & hellip;

Così, continue si riferisce al ciclo do...while, e:

& hellip; quindi termina immediatamente l'iterazione corrente e ne inizia una nuova.