Menggunakan penyeleksian nested if tersarang program Java
Penyeleksian If Tersarang (Nested if) Di Java
Di Java, pernyataan yang ada di dalam penyeleksian if atau if else bisa berupa pernyataan apapun termasuk juga adalah penyeleksian if atau if else yang lain. Penyeleksian if atau if else yang terletak di dalam (inner) penyeleksian if atau if else yang lain (outer) disebut dengan penyeleksian if tersarang (nested if statement).

Penyeleksian if atau if else yang ada di dalam penyeleksian if atau if else yang lain, juga dapat berisi penyeleksian if atau if else yang lain pula dan begitu seterusnya. Berikut ini adalah penggalan kode program untuk nested if:

If (usiaBadu > usiaNanang) {
   If (usiaGito > usiaNanang)
      System.out.println("Badu dan Gito lebih tua dari Nanang");
}
else
   System.out.println("Badu lebih muda dari Nanang");

Dari penggalan kode program tersebut, penyeleksian if (usiaGito > usiaNanang) berada di dalam penyeleksian if lain (usiaBadu > usiaNanang) dapat dikatakan bahwa penyeleksian if (usiaGito > usiaNanang) disarangkan (nested) ke dalam penyeleksian if (usiaBadu > usiaNanang) yang berada di bagian luar.

Baca artikel Penyeleksian switch Di Java

Jika variabel usiaBadu bernilai 26, usiaGito bernilai 24 dan usiaNanang bernilai 20, penyeleksian tersebut menampilkan string Badu dan Gito lebih tua dari Nanang. Di dalam penyeleksian if else, else dihubungkan langsung dengan if yang mendahuluinya kecuali bila mempunyai maksud lain. Untuk maksud lain ini, Anda dapat meletakkan tanda braces di perulangan if else.

if (x > 5)
   if (y > 5)
      System.out.println("x dan y lebih besar dari 5");
else
   System.out.println("x lebih kecil atau sama dengan 5");

Penyeleksian di atas nampak bahwa jika x lebih besar dari 5 dan di dalam penyeleksian if tersarang y juga lebih besar dari 5, string x dan y lebih besar dari lima yang ditampilkan. Penyeleksian di atas juga nampak jika x tidak lebih besar dari 5, string setelah else, x lebih kecil atau sama dengan 5, yang ditampilkan.

Baca artikel:

Perlu diperhatikan bahwa penyeleksian di atas tidak dieksekusi seperti nampaknya. Telah dijelaskan sebelumnya bahwa else dihubungkan langsung dengan if yang mendahuluinya, sehingga kompiler Java akan mengeksekusi penyeleksian tersebut sebagai berikut:

if (x > 5)
   if (y > 5)
      System.out.println("x dan y lebih besar dari 5");
   else
      System.out.println("x lebih kecil atau sama dengan 5");

Penyeleksian di atas menguji apakah x lebih besar dari 5. Jika benar, eksekusi berlanjut dengan menguji apakah y juga lebih besar dari 5, jika kondisi kedua juga benar, string x dan y lebih besar dari 5 ditampilkan, namun jika kondisi kedua salah, string x lebih kecil atau sama dengan 5 ditampilkan.

Agar kompiler mengeksekusi penyeleksian if sebagaimana maksud awal penyeleksian tersebut ditulis, Anda dapat memakai braces. Braces mengindikasikan bahwa penyeleksian if kedua adalah blok pernyataan (body) dari penyeleksian if pertama dan else merupakan bagian dari if pertama. Berikut ini adalah bentuk penulisannya:

if (x > 5) {
   if (y > 5)
      System.out.println("x dan y lebih besar dari 5");
}
else
   System.out.println("x lebih kecil atau sama dengan 5");