CodeGym /Java Blog /Acak /Loop Bersarang Java
John Squirrels
Level 41
San Francisco

Loop Bersarang Java

Dipublikasikan di grup Acak
Java, seperti kebanyakan bahasa pemrograman lainnya, mendukung loop bersarang. Ini berarti hanya satu lingkaran dalam satu lingkaran. Pada artikel ini, kita akan mencari tahu tentang cara bekerja dengan nested loop di Java.

Loop bersarang Java

Sebuah loop disebut bersarang jika ditempatkan di dalam loop lain. Pada lintasan pertama, loop luar memanggil loop dalam, yang berjalan hingga selesai, setelah itu kontrol ditransfer ke badan loop luar. Pada pass kedua, loop luar memanggil loop dalam lagi. Begitu seterusnya sampai loop luar berakhir. Ada empat jenis loop di Java:
  • untuk putaran

  • while loop

  • do... while loop

  • untuk-setiap loop

Semuanya mendukung loop bersarang. Konstruksi nested-loop digunakan ketika dua kondisi harus dipenuhi, yang satu bergantung pada yang lain. Misalnya, jika Anda perlu menampilkan matriks dua dimensi, semipiramida, atau tabel perkalian.

Cara kerja loop bersarang Java

Mungkin loop yang paling banyak digunakan di Java adalah for , sebagian besar karena cukup fleksibel dan kodenya cukup mudah dibaca. Berikut adalah sintaks umum untuk loop for bersarang:

// outer loop
for (initialization; condition; increment) {
  //write here your code 

  //nested loop
  for(initialization; condition; increment) {
    //write here your code
  }
..
}
Bagaimana dia bekerja? Putaran luar dimulai. Kemudian perulangan for yang disarangkan memulai pekerjaan dan menelusuri indeksnya hingga kondisi terpenuhi, dan kembali meneruskan pekerjaan ke perulangan luar, dan ini terjadi hingga kondisi perulangan luar terpenuhi. Kedengarannya agak rumit, bukan? Nah, akan jauh lebih mudah untuk memahaminya dengan contoh spesifik, jadi mari kita lanjutkan.

Bersarang untuk contoh kode loop

Inilah salah satu contoh klasik. Mari cetak setengah piramida menggunakan dua for loop. Salah satunya bersarang.

public class NestedLoopsDemo1 {

   public static void main(String[] args) {

       for (int i = 0; i < 10; i++) {
           for (int j = 0; j<=i;  j++)
               System.out.print("*");
           System.out.println();
       }
      
   }
}
Outputnya adalah:
* ** *** **** ***** ******* ******* ******** ********** ***** *****

Contoh kode loop bersarang sementara


public class NestedLoopsDemo2 {

   public static void main(String[] args) {

       int i = 0;
       while (i < 10) {
           int j = 0;
           while (j <= i) {
               System.out.print("*");
               j++;
           }
           System.out.println();
           i++;

       }
   }
}
Outputnya sama seperti pada contoh sebelumnya:
* ** *** **** ***** ******* ******* ******** ********** ***** *****
Perulangan do...while mirip dengan perulangan while . Perbedaan utamanya adalah, body dari do...while loop dieksekusi sekali sebelum pemeriksaan ekspresi.

Contoh kode loop foreach bersarang

untuk-setiap loop dapat disarangkan seperti biasa untuk loop. Berikut adalah contoh untuk setiap loop bersarang yang mengulang array 2 dimensi.

public class NestedLoops2 {

       public static void main(String[] args)
       {
           int[][] mainArray = { {5, 4, 3, 2, 1}, {7, 8, 9, 10, 11} };

           for (int[] myArray : mainArray)
           {
               for (int i : myArray)
               {
                   System.out.print(i+" ");
               }
               System.out.println("");
           }
       }
}
Outputnya adalah:
5 4 3 2 1 7 8 9 10 11

Campuran untuk dan while contoh loop

Kadang-kadang kita dapat menyarangkan berbagai jenis loop di dalam satu sama lain. Misalnya, untuk di dalam while atau untuk di dalam untuk masing-masing . Namun, itu bukan praktik pemrograman terbaik. Konstruksi seperti itu secara signifikan merusak keterbacaan kode. Jadi programmer profesional mencoba untuk tidak mencampur satu sama lain. Yah, mereka melakukannya, tetapi hanya jika itu benar-benar dibutuhkan. Dan satu aturan kecil lagi: jika Anda memilih antara while dan for , gunakan for jika memungkinkan. Namun demikian, di sini kita akan memiliki contoh penggunaan for loop di dalam while . Mari kita bangun semi-piramida kita lagi.

public class NestedLoopsDemo2 {

   public static void main(String[] args) {
       int i = 0;
       while (i < 10) {
           for (int j = 0; j <= i; j++) {
               System.out.print("*");
           }
           System.out.println();
           i++;

       }
   }
}
Outputnya tanpa kejutan:
* ** *** **** ***** ******* ******* ******** ********** ***** *****
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION