Java - break izjave


Dok radite s petljama, ponekad je poželjno preskočiti neke izjave unutar petlje ili odmah prekinuti petlju bez provjere testnog izraza. U takvim se slučajevima koriste iskazi break i continue. O tome ćete saznati u sljedećem lekcijama. Break izjava u Javi odmah prekida petlju, a kontrola programa prelazi na sljedeću izjavu koja slijedi nakon petlje. otovo se uvijek koristi u izjavama za donošenje odluka (if...else izjave). Ovo je sintaksa break izjave u Javi:

break;


Kako funkcioniše break izjava?



Primjer 1: Java break izjava

class Test {
    public static void main(String[] args) {
      
        // for petlja
        for (int i = 1; i <= 10; ++i) {

            // ako je vrijednost i 5, petlja prestaje sa radom
            if (i == 5) {
                break;
            }      
            System.out.println(i);
        }   
    }
}

U gornjem programu koristimo for petlju za ispis vrijednosti i u svakoj iteraciji. Da biste saznali kako petlja funkcioniše, pogledajte for petlja. Pogledajmo sljedeću izjavu:

if (i == 5) {
    break;
}

Ovo znači kada je vrijednost i jednaka 5 i petlja prestaje sa radom. Zbog toga dobijamo izlaz s vrijednostima manjim od 5.


Primer 2: Java break izjava

Program u nastavku izračunava zbir brojeva koje je korisnik unio, sve dok korisnik ne unese negativan broj. Da bismo preuzeli unos od korisnika, koristili smo objekt Scanner.

import java.util.Scanner;

class UserInputSum {
    public static void main(String[] args) {
      
        Double number, sum = 0.0;

        // kreiranje Scanner objekta
        Scanner input = new Scanner(System.in);
      
        while (true) {
            System.out.print("Upišite broj: ");

            // Uzmi vrijednosti od korisnika
            number = input.nextDouble();
         
            // ukoliko je broj negativan petlja prestaje s radom
            if (number < 0.0) {
                break;
            }
         
           sum += number;
        }
        System.out.println("Sum = " + sum);
    }
}

U gornjem programu, testni izraz while petlje je istinit (true). Primjetite sljedeću liniju koda:

if (number < 0.0) {
    break;
}

Ovo znači kada korisnik unese negativne brojeve, while petlja prestaje sa radom.



Java break i ugnježđene petlje

U slučaju ugniježđenih petlji, iskaz prekida (break) ukida unutarašnu petlju.





Izjava o prekidu ovdje završava unutrašnju petlju, a kontrola prelazi na vanjsku petlju.



Označavanje break izjava

Do sada smo koristili neoznačenu izjavu o prekidu (break), ali u Javi postoji još jedan oblik izjave o prekidu koji je poznat i kao označeni prelom. Označeni prelom možemo upotrijebiti i za raskidanje najudaljenije petlje.




Kao što možete vidjeti na gornjoj slici, koristili smo identifikator naljepnice za određivanje vanjske petlje. Sada primjetite kako se koristi izjava break (break label;). Ovdje break izjave završava označenu izjavu (tj. vanjsku petlju). Zatim, kontrola programa skoči na iskaz nakon označene izjave. Evo još jednog primjera:

while (testExpression) {
   // kod
   second:
   while (testExpression) {
      // kod
      while(testExpression) {
         // kod
         break second;
      }
   }
   // skokovi za kontrolu
}

U gornjem primjeru, break second; se izvršava, dok se petlja označena kao secund prekida, a kontrola programa prelazi na iskaz nakon druge, gdje se nalazi while petlja.


Primjer 3: break izjava s oznakom

class LabeledBreak {
    public static void main(String[] args) {
   
        // petlja for je označena kao prva
        first:
        for( int i = 1; i < 5; i++) {

            // petlja for je označena kao druga
            second:
            for(int j = 1; j < 3; j ++ ) {
                System.out.println("i = " + i + "; j = " +j);
             
                // izjava break prekida prvu for petlju
                if ( i == 2)
                    break first;
            }
        }
    }
}

U gornjem primjeru, označeni prelomi izraza koristi se za prekid petlje koja je označena kao prva. To je:

first:
for(int i = 1; i < 5; i++) {...}

Ako promijenimo izjavu break first; program će se drugačije ponašati. U ovom slučaju će se petlja koja je označena kao druga prekinuti. Na primjer:

class LabeledBreak {
    public static void main(String[] args) {
      
        // petlja for je označena kao prva
        first:
        for( int i = 1; i < 5; i++) {

            // petlja for je označena kao druga
            second:
            for(int j = 1; j < 3; j ++ ) {

                System.out.println("i = " + i + "; j = " +j);
       
                // izjava prekida (break) ukida petlju koja je označena kao druga
                if ( i == 2)
                    break second;
            }
        }
    }
}