Java - continue izjave


Za vrijeme rada 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. Da biste saznali više o izjavi break, pogledajte lekciju Java break. Continue izjava u Javi preskače trenutnu iteraciju petlje (for, while, do ... while, itd.), a kontrola programa premješta se na kraj petlje i procjenjuje se testni izraz petlje. U slučaju petlje, izjava ažuriranja se izvršava prije testnog izraza. Continue izjava o nastavku gotovo se uvijek koristi u izjavama za donošenje odluka (if...else izjava). Njegova je sintaksa:

continue;


Kako continue izjava radi?




Primjer 1: Continue izjava u Javi

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

            // ako je vrijednost između 4 i 9, continue će se izvršiti 
            if (i > 4 && i < 9) {
                continue;
            }      
            System.out.println(i);
        }   
    }
}

U gornjem programu koristimo for petlju za ispis vrijednosti i u svakoj iteraciji. Da biste saznali kako for petlja radi, posjetite lekciju Java for petlja. Pogledajmo izjavu:

if (i > 5 && i < 9) {
    continue;
}

To znači da kada vrijednost i postane veća od 4, a manja od 9, izjava ispisa unutar petlje se preskače. Zbog toga dobijamo izlaz sa vrijednostima 5, 6, 7 i 8.


Primjer 2: Continue izjava u Javi

Program u nastavku izračunava zbir 5 pozitivnih brojeva koje je unio korisnik. Ako korisnik unese negativni broj ili nulu, to se preskače u računanju. Da bismo preuzeli unos od korisnika, koristili smo objekt Scanner.

import java.util.Scanner;

class AssignmentOperator {
    public static void main(String[] args) {
      
        Double number, sum = 0.0;
        // create an object of Scanner
        Scanner input = new Scanner(System.in);
      
        for (int i = 1; i < 6; ++i) {
            System.out.print("Enter a number: ");
            // uzima dvostruki unos od korisnika
            number = input.nextDouble();
         
            // ukoliko je broj negativan preskoči iteraciju 
            if (number <= 0.0) {
                continue;
            }
         
            sum += number;
        }
        System.out.println("Sum = " + sum);
    }
}

U gornjem programu primjetite liniju koda:

if (number < 0.0) {
    continue;
}

To znači da kada korisnik unese negativne brojeve, preskoči trenutnu iteraciju petlje i pokreće sljedeću iteraciju.



Java continue i ugnjžđene petlje

U slučaju ugniježđenih petlji, continue preskače trenutnu iteraciju unutrašnje petlje.





Označene continue izjave

Do sada smo koristili neoznačenu izjavu za continue izjavu. Koristi se za završetak iskaza unutrašnje petlje i switch izjave. Međutim, u Javi postoji još jedan oblik continue izraza, označen kao labeled contine. Znači da se označene continue naredbe možemo koristiti za ukidanje i najudaljenije petlje.



Kao što možete vidjeti na gornjoj slici, koristili smo identifikator naljepnice za određivanje vanjske petlje. Sada primjetite kako se koristi naredba continue. Ovdje naredba continue preskače trenutnu iteraciju označene izjave (tj. vanjske petlje). Zatim kontrola programa prelazi na sljedeću iteraciju označene izjave (vanjska petlja).


Primjer 3: labeled continue izjava

class LabeledContinue {
    public static void main(String[] args) {

        // vanjska strana petlje označena je kao naljepnicathe (label)      
        first:
        for (int i = 1; i < 6; ++i) {
            for (int j = 1; j < 5; ++j) {
                if (i == 3 || j == 2)

                    // preskače iteraciju naljepnice (label - vanjsku for petlju) 
                    continue first;
                System.out.println("i = " + i + "; j = " + j); 
            }
        } 
    }
}

U gornjem primjeru, označeni continue koristi se za preskakanje trenutne iteracije petlje koja je označena kao first.

if (i==3 || j==2)
    continue first;

Ovde vidimo da je najudaljenija for petlja označena kao first,

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

Dakle, iteracija vanjske petlje se preskače ako je vrijednost i3 ili je vrijednost j jednaka.