Java - If, if/else izjave


U računarskom programiranju često je poželjno izvršiti određeni dio koda na temelju toga da li je navedeni uslov istinit (true) ili lažan (false) (što je poznato samo tokom vremena izvođenja). Za takve se slučajeve koriste izjave kontrolnog toka.



Java if (if-then) izjave

if (expression) {
    // izjave
}

Ovdje je expression boolov izraz. Boolov izraz vraća ili istinit (true) ili lažan (false).

  • ako je izraz ocijenjen istinitim, izraz (i) u tijelu if (izrazi u zagradama) se izvršavaju
  • ako je izraz ocijenjen lažnim, iskaz (i) unutar tijela if se preskaču


Kako if izjava radi?

Rad if izjava u Javi.



Primjer 1: Java if izjava

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

        int number = 10;

        // provjeri je da li je broj veći od 0
        if (number > 0) {
            System.out.println("Ovaj broj je pozitivan.");
        }
        System.out.println("Ova izjava će se uvijek izvršiti.");
    }
}

U gornjem primjeru imamo varijablu koja se zove number. Ovdje testni izraz provjerava da li je varijabla number veći od 0 (number > 0). Budući da je varijabla number veći od 0 testni izraz ocjenjuje se istinitim. Kod unutar tijela if se izvršava. Sada promijenite vrijednost varijable number u negativni cijeli broj. Recimo -5.

int number = -5;

Ako pokrenemo gornji program s novom vrijednošću broja, izlaz će biti:


Ova izjava će se uvijek izvršiti.



Primjer 2: Java if...else sa stringovima

class Main {
  public static void main(String[] args) {
    // kreiranje string varijable
    String language = "Java";

    // if izjava
    if(language == "Java") {
      System.out.println("Volim učiti Javu uz IT TUTORIJALE.");
    }
  }
}

Ovdje uspoređujemo dva stringa u bloku if.



Java if...else (if-then-else) izjave

Izjava if izvršava određeni dio koda ako je testni izraz ocijenjen istinitim (true). Međutim, ako se testni izraz ocijeni lažnim, to ne znači ništa. U ovom slučaju možemo koristiti neobavezni blok. Izjave unutar tijela drugog bloka izvršavaju se ako je testni izraz ocijenjen lažnim (false). To je poznata kao izjava if-then-else u Javi. Sintaksa izjave if-then-else je:

if (expression) {
   // kod
}
else {
  // neki drugi kod
}

Ovdje će naš program obaviti jedan zadatak (zadatak unutar if bloka) ako je testni izraz istinit i drugi zadatak (zadatak unutar drugog bloka) ako je testni izraz lažan.



Kako if...else uslovi rade?



Primjer 2: Java if...else izjava

class IfElse {
    public static void main(String[] args) {      
        int number = 10;

        // provjeri da li je broj veći od 0  
        if (number > 0) {
            System.out.println("Ovaj broj je pozitivan.");
        }
        else {
            System.out.println("Ovaj broj nije pozitivan");
        }
 
        System.out.println("Ova izjava će se uvije izvršiti.");
    }
}


Java if..else..if izjave

U Javi imamo if...else...if uslove i koriste se za izvršavanje jednog bloka koda među više drugih blokova.

if (expression1) {
   // kod
}
else if(expression2) {
   // kod
}
else if (expression3) {
   // kod
}
.
.
else {
   // kod
}

If izjave se izvršavaju od vrha prema dnu. Čim je testni izraz istinit, u tijelu se if izjava izvršava. Zatim, kontrola programa skače izvan izjave if-else-if. Ako su svi testni izrazi lažni, izvršavaju se kodovi u tijelu drugoga bloka.


Primjer 3: Java if..else..if izjava

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

        int number = 0;

        // provjeri da li je broj veći od 0  
        if (number > 0) {
            System.out.println("Broj je pozitivan.");
        }

        // provjeri da li je broj manji od 0
        else if (number < 0) {
            System.out.println("Broj je negativan.");
        }
        else {
            System.out.println("Broj je 0.");
        } 
    }
}

U gornjem primjeru provjeravamo da li je broj pozitivan, negativan ili nula. Ovdje imamo dva testna izraza:

  • number > 0 - provjerava da li je broj veći od 0
  • number < 0- provjerava da li je broj manji od 0

Ovdje je vrijednost broja 0. Tako da oba testna izraza procjenjuju na lažno. Odatle se izjava unutar tijela drugog izvršava.



Java ugnježdene if..else izjave

U Javi su moguće i if..else izjave unutar if..else izjave. One se zovu ugniježđene if...else izjave. Evo programa za pronalaženje najvećeg od 3 broja:


Primjer 4: Ugnježdene if..else izjave

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

        // deklarisanje double type varijable
        Double n1 = -1.0, n2 = 4.5, n3 = -5.3, largestNumber;

        // provjeri da li je n1 veće od n2
        if (n1 >= n2) {

            // if...else statement unutar if bloka
            // provjeri da li je n1 veće ili jednako n3
            if (n1 >= n3) {
                largestNumber = n1;
            }

            else {
                largestNumber = n3;
            }
        }
        else {

            // if..else statement unutar else bloka
            // provjeri da li je n2 veće ili jednako n3
            if (n2 >= n3) {
                largestNumber = n2;
            }

            else {
                largestNumber = n3;
            }
        }

        System.out.println("Broj je " + largestNumber);
    }
}

Java nudi posebnog operatora zvanog ternarni operator, što je svojevrsna skraćenica izjave if...else.