Gyakorlati alapok

Döntsünk még rövidebb idő alatt! (rövid if)

 

A Javán és persze számos magas szintű programozási nyelven belül van egy további érdekes lehetőségünk, amellyel kissé felgyorsíthatjuk a döntések futását és lerövidíthetjük a kódot. A kifejezés alapértelmezésben 2 irányú választási lehetőséget biztosít...

 

www.informatika-programozas.hu

 

...váza a következőképpen néz ki:

 

a ? b : c

 

A hivatalos Java-dokumentáció ternary operator kifejezéssel illeti, amit 3 operandusú operátornak fordíthatunk. A váz önmagában nem működőképes, ezért gyorsan ugorjunk is bele egy futtatható Java-kódba:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {
    int a = 1;
    int b = 2;
    int c = a < b ? a : b;
    System.out.println(c);
    }
}

 

Végeredmény:

1

 

A kód kulcssora nyilvánvalóan az int c = a < b ? a : b; kifejezés. Fordítsuk ezt le emberi nyelvre:

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

int c = a < b ? a : b;

Ha a kisebb b-nél, akkor c értéke a lesz, másként b.

 

A végeredmény (1) jól mutatja a kifejezés helyességét. A kód olvashatóságát talán kissé növeli, ha a hagyományos feltételmegadáshoz hasonlóan zárójelezzük a feltételt, ám ettől a kód tartalmilag nem fog megváltozni:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {
    int a = 1;
    int b = 2;
    int c = (a < b) ? a : b;
    System.out.println(c);
    }
}

 

Végeredmény:

1

 

Természetesen mindez implementálható a "klasszikus" if-else kifejezéssel is:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {
    int a = 1;
    int b = 2;
    int c = 0;
    if(a < b){
        c = a;
    }
    else
        c = b;
    System.out.println(c);
    }
}

 

Végeredmény:

1

 

Könnyen észrevehetjük a rövid if kifejezés előnyeit és hátrányait:

A rövid if természetesen használható más adattípusok esetében is. Alább például működését String típuson tanulmányozhatjuk:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {
    int legyekSzama = 3;
    String fontosUzenet = "A házban "

    + (legyekSzama > 1 ? "több légy (" + legyekSzama + " db)": "csak 1 légy") + " repked.";
    System.out.println(fontosUzenet);
    }
}

 

Végeredmény:

A házban több légy (3 db) repked.