Java-kielessä on paljon ominaisuuksia, eikä kaikkia ole mielekästä käsitellä ohjelmoinnin peruskursseilla. Tässä esitellään joitakin Java-kielen ominaisuuksia, jotka puuttuvat kurssimateriaalista.
Jos if-rakenteen tai silmukan sisällä on vain yksi komento, aaltosulut voi jättää pois.
Näin on esimerkiksi seuraavassa koodissa:
if (luku == 0) { System.out.println("Nollalla ei voi jakaa!"); }
Koodin voi kirjoittaa lyhyemmin näin:
if (luku == 0) System.out.println("Nollalla ei voi jakaa!");
Tai myös näin:
if (luku == 0) System.out.println("Nollalla ei voi jakaa!");
Kuitenkin aaltosulut voi kirjoittaa aina, ja monen mielestä tämä käytäntö tekee ohjelman koodista selkeämmän.
Komennon continue
avulla voi siirtyä silmukan seuraavalle
kierrokselle kesken silmukan suorituksen.
Tässä on yksi tapa tulostaa parittomia kokonaislukuja:
for (int i = 0; i < 100; i++) { if (i % 2 == 0) { continue; } System.out.println(i); }
Javassa on käytössä myös seuraava loppuehtoinen silmukka:
do { ... } while (ehto);
Silmukka toimii muuten samalla tavalla kuin while-silmukka, mutta silmukassa oleva ehto tarkistetaan aina silmukan lopussa.
Seuraava koodi kysyy käyttäjältä salasanaa, kunnes käyttäjä antaa sanan "selleri":
String salasana; do { System.out.print("Anna salasana: "); salasana = input.nextLine(); } while (!salasana.equals("selleri"));
Jos if-rakenteessa verrataan monta kertaa samaa muuttujaa, vaihtoehtoinen toteutustapa on switch-rakenne.
if (luku == 1) { System.out.println("yksi"); } else if (luku == 2) { System.out.println("kaksi"); } if (luku == 3) { System.out.println("kolme"); }
switch (luku) { case 1: System.out.println("yksi"); break; case 2: System.out.println("kaksi"); break; case 3: System.out.println("kolme"); break; }
Seuraava lyhennysmerkintä on joskus näppärä:
if (nimi.equals("Aapeli")) { luku = 1; } else { luku = 2; }
luku = nimi.equals("Aapeli") ? 1 : 2;
Lauseke muodostuu kolmesta osasta, joiden välissä ovat merkit ? ja :. Ensin tulee ehto, sitten lausekkeen arvo ehdon ollessa tosi ja lopuksi lausekkeen arvo ehdon ollessa epätosi.