Deo zbornika Učimo Javu

Naredba if u Javi

Java jezik sadrži if naredbu koja utvrđuje da li je određeni uslov ispunjen ili nije. Na osnovu ispunjenosti uslova određuje se redosled izvršavanja programa.

Sljedeći program ispisuje prvi argument sa komandne linije, ali prvo uz pomoć varijable args.length provjerava ima li argumenata:

class Hello {

    public static void main (String args[]) {

      if (args.length > 0) {
        System.out.println("Hello " + args[0]);
      }
  }

}

System.out.println(args[0]) je ovdje umetnuta unutar uslova:

if (args.length > 0) { }

Blok koda unutar vitičastih zagrada, System.out.println(args[0]), bit će izvršen ako i samo ako je duljina polja args veća od nule. Argumenti za kondicionalne naredbe kao što je if moraju biti bulovski, dakle izrazi koji se evaluiraju na true ili false. Cjelobrojni argumenti nisu dopušteni.

% javac Hello.java
% java Hello
%
% java Hello world!
% Hello world!

Klauzula else

class Hello {

    public static void main (String args[]) {

      if (args.length > 0) {
        System.out.println("Hello " + args[0]);
      }
      else {
        System.out.println("Hello whoever you are.");
      }
  }

}
% javac Hello.java
% java Hello
% Hello whoever you are
%
% java Hello world!
% Hello world!

Klauzula else if

Naredba if nije ograničena na samo dva slučaja. Kombiniranjem else i if dobije se else if kako bi se mogle ispitati sve mogućnosti. Preradimo sada Hello program tako da barata sa 4 imena s komandne linije.

class Hello {

    public static void main (String args[]) {

      if (args.length == 0) {
        System.out.println("Hello whoever you are");
      }
      else if (args.length == 1) {
        System.out.println("Hello " + args[0]);
      }
      else if (args.length == 2) {
        System.out.println("Hello " + args[0] + " " + args[1]);
      }      
      else if (args.length == 3) {
        System.out.println("Hello " + args[0] + " " + args[1] + " " + args[2]);
      }      
      else if (args.length == 4) {
        System.out.println("Hello " + args[0] +
          " " + args[1] + " " + args[2] + " " + args[3]);
      }      
      else {
        System.out.println("Hello " + args[0] + " " + args[1] + " " + args[2]
         + " " + args[3] + " and all the rest!");
      }

  }

}
% javac Hello.java
% java Hello
% Hello whoever you are
%
% java Hello prvi drugi treci cetvrti
% Hello prvi drugi treci cetvrti
%
% java Hello prvi drugi treci cetvrti peti
% Hello prvi drugi treci cetvrti and all the rest!

Ipak, takav način ispitivanja brzo postaje kompliciran. Postoje i bolja rješenja, kao što pokazuju sljedeći primjeri.

Izvor: Elliotte Rusty Harold, Java Lecture Notes, preveo Draško Budin, priredio Damjan Pavlica.