2013-06-27 12 views
6

Qualcuno sa cosa fa il group_skip?Cosa fa l'istruzione break in java?

Forse è una programmazione di base, ma ho programmato l'utilizzo di Java per alcuni anni e l'ho trovato solo oggi.

group_skip: do { 
    event = stepToNextEvent(FormController.STEP_OVER_GROUP); 
    switch (event) { 
     case FormEntryController.EVENT_QUESTION: 
     case FormEntryController.EVENT_END_OF_FORM: 
      break group_skip; 
    } 
} while (event != FormEntryController.EVENT_END_OF_FORM); 

Grazie!

+5

Non pubblicare immagini di testo, ma copia e incolla il testo direttamente nel tuo post. Le immagini di testo non sono facilmente analizzabili, ricercabili o accessibili. –

+1

Modificato! Ci scusiamo per questo: D – Rendy

+1

È un'etichetta, che può essere utilizzata per uscire da una dichiarazione – Longball27

risposta

15

Questa è una labelled loop, quando viene eseguita break group_skip; dichiarazione, salterà fuori dal ciclo Do While che viene etichettato come group_skip

boolean isTrue = true; 
    outer: for (int i = 0; i < 5; i++) { 
     while (isTrue) { 
      System.out.println("Hello"); 
      break outer; 
     } // end of inner while 
     System.out.println("Outer loop"); // does not print 
    } // end of outer loop 
    System.out.println("Good Bye"); 

Questa uscite

Hello 
Good Bye 

È possibile ottenere il concetto chiaro qui.

  • V'è un marcato for ciclo chiamato outer e c'è interna while anello
  • Quando ciclo for interno sia eseguito, si incontra break outer; economico
  • Il outer for loop ha una dichiarazione System.out.println"Outer loop" ma che non viene stampata .
  • Questo perché break outer fa sì che il controllo per saltare fuori l'etichetta for ciclo direttamente

Ora questo esempio per la continue dichiarazione

outer: for (int i = 0; i < 5; i++) { 
     for (int j = 0; j < 5; j++) { 
      System.out.println("Hello"); 
      continue outer; 
     } // end of inner loop 
     System.out.println("outer"); // this won't print 
    } // end of outer loop 
    System.out.println("Good bye"); 

Questo stampa

Hello 
Hello 
Hello 
Hello 
Hello 
Good bye 
  • C'è un etichettato for loop qui e un ciclo interno for
  • Interno for ciclo di stampe Hello e continua fino al ciclo outer.
  • A causa di ciò, le istruzioni sotto il ciclo interno for vengono saltate e il ciclo outer continua ad essere eseguito.
  • Alla fine del outer ciclo for, Good Bye viene stampato

Spero che questo rende tutto chiaro.

+0

Grazie Prasad per l'esempio chiarissimo! Btw, non hai il 'System.out.println (" Good Bye ");'; D – Rendy

+0

Fatto errore copiarlo incollandolo :) .. grazie per averlo indicato Rendy –

+0

Felice ragazzo di apprendimento :) –

0

group_skip è un'etichetta utilizzata per cose come la pausa. (Anche goto e jump in altre lingue)

In java, in particolare, sarebbe usato per interrompere un blocco di codice identificato dall'etichetta, comportandosi come un'istruzione break in un ciclo while, eccetto per la rottura da un blocco di codice etichettato.

Here è un po 'di discussione sul tema

5

quando mai usiamo semplice istruzione break allora possiamo solo trasferire il controllo da interno più loop più esterno (se abbiamo nidificazione di loop). per exampel

for(int i=0; i < 10; i++){ 
    if(i==5){ 
     break; 
    } 
} 
statement x; 

sarà semplicemente trasferire il controllo al economico x. Ma se lo usi all'interno di cicli annidati, funzionerà diversamente.

for(int i=0; i < 10; i++){ 
for(int j=0; j < 10; j++) 
    if(i==5){ 
     break; 
    } 
} 
statement y; 
} 
statement x; 

in questo caso si invierà il controllo a dichiarazione y. Se si desidera inviare il controllo dal ciclo più interno al ciclo più esterno o al di fuori del ciclo, è necessario disporre di tali istruzioni di interruzione con le etichette. Fallo da te stesso e vedrai un output interessante .. :)