Stavka 'break' in 'continue'

Stavka break in continue sta namenjena kontroli izvajanja bloka (zaporedja) stavkov. Čeprav je njuna funkcionalnost v primerjavi z izvedbo v programskem jeziku C v Javi rahlo okrnjena, pa pri uporabi znotraj teles ponavljanj ali v okviru stavka switch (break stavek) še vedno dosegata svoj namen.

Za oba stavka je značilno, da prekineta normalno izvajanje sekvence ukazov na mestu, kjer sta uporabljena. Continue pri tem prenese nadaljevanje (kontrolo) izvajanja na začetek bloka v katerem je uporabljen, break pa na njegov konec.

Da bi bolje razumeli njuno fukcinalnost, si oglejmo spodnje tri primere. Za osnovo vzemimo enostavno zanko, ki se med svojim izvajanjem ponovi natanko 6x :

    public class Brk_cont00{
	
	    public static void main(String[] arg){
		
		     for (int i=0;i<6;i++){
			      System.out.print(i);
		      }
			  
			  System.out.print("konec");
	     }
	}
   
   

Program vsled svojega izvajanja generira zaporedje števil
012345konec


Sedaj pa spremenimo program tako, da dodamo vrstico, označeno z zeleno barvo :
 
 public class Brk_cont02{


   public static void main(String[] arg){
	     
      for (int i=0;i<6;i++) {
	             
	       if (i==3) break;
	       
            System.out.print(i);
      } 
   
      System.out.print("konec"); 
   }
 }
   
   
Stavek povzroči, da se izvajanje telesa zanke (ko i doseže vrednost 3) 
prekine in prenese na prvi stavek po koncu zanke. Izpis,ki ga generira program
v tem primeru je torej


 123konec                                                                                         

Nasprotno se v spodnjem primeru, ko namesto stavka break uporabimo continue, kontrola izvajanja prenese na začetek bloka; to je na glavo same zanke for :

 
     
 public class Brk_cont02 {
 
   public static void main(String[] arg){
   
       for (int i=0;i<6;i++) {
   
             if (i==3) continue;
   
             System.out.print(i);
       } 
   
       System.out.print("konec");
   }
 }
   
    

izpis, ki se generira je enak naslednjemu :

01245konec

V zadnjem podanem primeru smo lahko opazili, da se kontrola izvajanja pri uporabi stavka continue prenese na 'stavek', ki dejansko stoji pred blokom, v katerem smo ga uporabili. Ta 'stavek' tu predstavlja glavo zanke, ki se je izvršila tako, kot da bi se celoten blok zanke normalno izvedel do konca. Enako bi dosegli tudi, če bi uporabili zanko while (za obe je značilno, da imata pogoj za ponavljanje na začetku bloka stavkov, ki jih ponavljamo). Do rahle razlike v izvajanju pride v primeru, da uporabimo zanko do-while. Ali lahko opredelite te razlike ?

Za vse tiste, ki ste mogoče že pozabili: stavek break lahko uporabite tudi znotraj bloka stavka 'switch'.