1. Membandingkan loop: forvswhile

Sebuah whileloop dapat digunakan di mana saja pernyataan atau kelompok pernyataan perlu dilakukan beberapa kali. Namun di antara semua skenario yang mungkin, ada satu yang patut disorot.

Kami berbicara tentang situasi ketika programmer (pembuat program) mengetahui sebelumnya berapa kali loop harus dieksekusi. Ini biasanya ditangani dengan mendeklarasikan variabel counter khusus, dan kemudian meningkatkan (atau menurunkan) variabel dengan 1setiap iterasi dari loop.

Segalanya tampak berfungsi sebagaimana mestinya, tetapi itu sangat tidak nyaman. Sebelum loop, kami menetapkan nilai awal variabel penghitung. Kemudian pada kondisi tersebut kita cek apakah sudah mencapai nilai akhir. Tapi kami biasanya mengubah nilainya di bagian paling akhir dari loop body.

Dan bagaimana jika badan loopnya besar? Atau jika kita memiliki beberapa loop bersarang? Secara umum, dalam kasus ini, sebaiknya mengumpulkan semua informasi tentang variabel penghitung ini di satu tempat. Dan itulah mengapa kami memiliki forloop di Jawa. Itu juga tidak terlihat sangat rumit:

for (statement 1; condition; statement 2)
{
   block of statements
}

Sebuah whileloop hanya memiliki kondisi dalam tanda kurung, tetapi sebuah forloop menambahkan dua pernyataan, dipisahkan oleh titik koma.

Kenyataannya lebih sederhana daripada kedengarannya: kompiler mengubah sebuah forloop menjadi loop biasa whileseperti ini:

statement 1;
while (condition)
{
   block of statements
   statement 2;
}

Atau lebih baik lagi, mari kita tunjukkan ini dengan sebuah contoh. Dua cuplikan kode di bawah ini identik.

Pilihan 1 pilihan 2
for (int i = 0; i < 20; i++)
{
   System.out.println(i);
}
int i = 0;
while (i < 20)
{
   System.out.println(i);
   i++;
}

Kami baru saja mengumpulkan semua kode yang berkaitan dengan ivariabel penghitung di satu tempat.

Dalam sebuah forloop, pernyataan 1 dieksekusi hanya sekali, sebelum loop itu sendiri dimulai. Ini bisa dilihat dengan jelas di cuplikan kode kedua

pernyataan 2 dieksekusi dalam jumlah yang sama dengan badan loop, dan setiap kali dieksekusi setelah seluruh badan loop dieksekusi


2. Di mana forloop digunakan

Loop formungkin merupakan jenis loop yang paling banyak digunakan di Jawa. Ini digunakan di mana-mana, untuk programmer itu lebih jelas dan lebih nyaman daripada satu whilelingkaran. Hampir semua whileloop dapat diubah menjadi satu forloop.

Contoh:

while loop untuk putaran
int i = 3;
while (i >= 0)
{
   System.out.println(i);
   i--;
}
for (int i = 3; i >= 0; i--)
{
   System.out.println(i);
}
int i = 0;
while (i < 3)
{
   System.out.println(i);
   i++;
}
for (int i = 0; i < 3; i++)
{
   System.out.println(i);
}
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
for (boolean isExit = false; !isExit; )
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
while (true)
   System.out.println("C");
for (; true; )
   System.out.println("C");
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
      break;
}
for (; true; )
{
   String s = console.nextLine();
   if (s.equals("exit"))
      break;
}

Perhatikan contoh terakhir. Pernyataan untuk bekerja dengan penghitung loop tidak ada. Tidak ada counter dan tidak ada pernyataan.

Dalam satu forlingkaran, Java memungkinkan Anda menghilangkan "pernyataan untuk menginisialisasi penghitung" dan "pernyataan untuk memperbarui penghitung". Bahkan ekspresi yang mendefinisikan kondisi loop dapat dihilangkan.



3. Nuansa menggunakan forloop

Poin penting tentang penggunaan forloop and breakdan continuepernyataan.

Sebuah breakpernyataan dalam sebuah forloop bekerja sama seperti dalam sebuah whileloop - itu menghentikan loop segera. Sebuah continuepernyataan melompati badan loop, tetapi tidak statement 2(yang mengubah penghitung loop).

Mari kita lihat lagi bagaimana fordan whileloop terkait.

for (statement 1; condition; statement 2)
{
   block of statements
}
statement 1;
while (condition)
{
   block of statements
   statement 2;
}

Jika sebuah continuepernyataan dieksekusi dalam sebuah forloop , maka blok pernyataan lainnya dilewati, tetapi pernyataan 2 (yang bekerja dengan forvariabel penghitung loop) tetap dieksekusi.

Mari kita kembali ke contoh kita dengan melewatkan angka yang habis dibagi 7.

Kode ini akan berulang selamanya Kode ini akan berfungsi dengan baik
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0) continue;
   System.out.println(i);
   i++;
}
for (int i = 1; i <= 20; i++)
{
   if ( (i % 7) == 0) continue;
   System.out.println(i);
}

Kode yang menggunakan whileloop tidak akan berfungsi — i tidak akan pernah lebih besar dari 7. Tetapi kode dengan forloop akan berfungsi dengan baik.



4. Membandingkan loop: Java vs Pascal

Ngomong-ngomong, Pascal juga punya Forloop. Secara umum, pada dasarnya setiap bahasa pemrograman memilikinya. Tapi di Pascal itu sangat jelas. Contoh:

Pascal Jawa
For i := 1 to 10 do
Begin
   Writeln(i);
End;
for (int i = 1; i <= 10; i++)
{
   System.out.println(i);
}
For i := 1 to 10 do step 2
Begin
   Writeln(i);
End;
for (int i = 1; i <= 10; i = i + 2)
{
   System.out.println(i);
}
For i := 10 downto 0 do step 2
Begin
   Writeln(i);
End;
for (int i = 10; i >= 0; i = i - 2)
{
   System.out.println(i);
}