1. Membandingkan gelung: forvswhile

Gelung whileboleh digunakan di mana-mana sahaja pernyataan atau kumpulan pernyataan perlu dilakukan beberapa kali. Tetapi di antara semua senario yang mungkin, satu patut ditonjolkan.

Kami bercakap tentang situasi apabila pengaturcara (pencipta program) mengetahui terlebih dahulu berapa kali gelung harus dilaksanakan. Ini biasanya dikendalikan dengan mengisytiharkan pembolehubah pembilang khas, dan kemudian meningkatkan (atau menurunkan) pembolehubah dengan 1setiap lelaran gelung.

Segala-galanya nampaknya berfungsi sebagaimana mestinya, tetapi ia tidak begitu mudah. Sebelum gelung, kami menetapkan nilai awal pemboleh ubah pembilang. Kemudian dalam keadaan kita semak sama ada ia telah mencapai nilai akhir. Tetapi kita biasanya menukar nilai di hujung badan gelung.

Dan bagaimana jika badan gelung itu besar? Atau jika kita mempunyai beberapa gelung bersarang? Secara umum, dalam kes ini adalah wajar untuk mengumpul semua maklumat ini tentang pembolehubah balas di satu tempat. Dan itulah sebabnya kami mempunyai forgelung di Jawa. Ia juga tidak kelihatan sangat rumit:

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

Gelung whilehanya mempunyai syarat dalam kurungan, tetapi forgelung menambah dua pernyataan, dipisahkan oleh koma bertitik.

Realitinya lebih mudah daripada bunyinya: pengkompil menukar forgelung menjadi gelung biasa whileseperti ini:

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

Atau lebih baik lagi, mari kita tunjukkan ini dengan contoh. Dua coretan kod di bawah adalah sama.

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 sahaja mengumpulkan semua kod yang berkaitan dengan ipembolehubah kaunter di satu tempat.

Dalam forgelung, pernyataan 1 dilaksanakan sekali sahaja, sebelum gelung itu sendiri bermula. Ini boleh dilihat dengan jelas dalam coretan kod kedua

pernyataan 2 dilaksanakan bilangan kali yang sama seperti badan gelung, dan setiap kali ia dilaksanakan selepas seluruh badan gelung telah dilaksanakan


2. Di mana forgelung digunakan

Gelung itu formungkin jenis gelung yang paling banyak digunakan di Jawa. Ia digunakan di mana-mana, untuk pengaturcara ia hanya lebih jelas dan lebih mudah daripada whilegelung. Hampir mana-mana whilegelung boleh ditukar menjadi forgelung.

Contoh:

gelung semasa untuk gelung
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 pembilang gelung tiada. Tiada kaunter dan tiada kenyataan.

Dalam forgelung, Java membenarkan anda meninggalkan "penyata untuk memulakan pembilang" dan "penyata untuk mengemas kini pembilang". Malah ungkapan yang mentakrifkan keadaan gelung boleh ditinggalkan.



3. Nuansa menggunakan forgelung

Perkara penting tentang penggunaan forgelung dan breakdan continuepernyataan.

Pernyataan breakdalam forgelung berfungsi sama seperti dalam whilegelung - ia menamatkan gelung serta-merta. Pernyataan continuemelangkau badan gelung, tetapi tidak statement 2(yang mengubah pembilang gelung).

Mari kita lihat lagi bagaimana fordan whilegelung berkaitan.

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

Jika continuepernyataan dilaksanakan dalam forgelung , maka blok pernyataan yang selebihnya dilangkau, tetapi pernyataan 2 (yang berfungsi dengan forpembolehubah pembilang gelung) masih dilaksanakan.

Mari kembali kepada contoh kita dengan melangkau nombor yang boleh dibahagi dengan 7.

Kod ini akan gelung selama-lamanya Kod 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);
}

Kod yang menggunakan whilegelung tidak akan berfungsi — i tidak akan lebih besar daripada 7. Tetapi kod dengan gelung forakan berfungsi dengan baik.



4. Membandingkan untuk gelung: Java vs Pascal

By the way, Pascal juga mempunyai Forgelung. Secara umum, pada dasarnya setiap bahasa pengaturcaraan mempunyai satu. Tetapi dalam Pascal adakah ia 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);
}