1. Gelung dalam hidup kita

Selalunya kehidupan kita memerlukan kita melakukan tindakan yang sama berkali-kali. Sebagai contoh, katakan saya perlu mengimbas dokumen yang terdiri daripada banyak halaman. Bahawa kita mengulangi prosedur yang sama berulang kali:

  • Letakkan halaman pertama pada pengimbas
  • Tekan butang imbasan
  • Letakkan halaman seterusnya pada pengimbas

Ini sukar dilakukan secara manual. Alangkah baiknya jika proses ini boleh dilakukan secara automatik.

Atau pertimbangkan contoh lain: katakan saya mahu menandakan semua e-mel yang belum dibaca dalam peti masuk saya sebagai spam. Pada suatu masa dahulu saya perlu memilih setiap e-mel satu demi satu dan menandakannya sebagai spam.

Tetapi pengaturcara malas, jadi mereka mengautomasikan proses ini sejak dahulu lagi: kini anda hanya memilih mana-mana senarai huruf dan klik "tanda sebagai spam", dan kemudian klien e-mel anda menjalankan senarai dan memindahkan setiap e-mel ke folder spam.

Apa yang boleh kita katakan di sini? Ia sangat mudah apabila komputer atau program boleh melaksanakan ratusan atau beribu-ribu operasi membosankan dengan satu klik. Dan sekarang anda akan belajar bagaimana untuk melakukan ini juga.


2. whilegelung

Pernyataan if-else meluaskan keupayaan pengaturcaraan kami dengan ketara, menjadikannya mungkin untuk menulis atur cara yang melakukan tindakan berbeza dalam situasi berbeza. Tetapi terdapat satu lagi perkara yang akan menjadikan program kami tertib magnitud lebih berkuasa — gelung .

Java mempunyai 4 jenis gelung: while, for, for-eachdan do-while. Kami sekarang akan menggali yang pertama ini.

Satu whilegelung adalah sangat mudah. Ia hanya terdiri daripada dua bahagian: keadaan dan badan gelung . Badan gelung dilaksanakan berulang kali selagi syaratnya true. Secara umum, whilegelung kelihatan seperti ini:

while (condition)
   statement;
Notasi untuk whilegelung dengan satu pernyataan
while (condition)
{
   block of statements
}
Notasi untuk whilegelung dengan blok pernyataan

Ia sangat mudah. Pernyataan atau blok pernyataan dilaksanakan berulang kali selagi keadaan gelung sama .true

Begini cara ia berfungsi: pertama, keadaan diperiksa. Jika ia benar, maka badan gelung dilaksanakan ( penyataan atau blok pernyataan ). Kemudian keadaan diperiksa semula dan badan gelung dilaksanakan semula. Dan seterusnya sehingga syarat menjadi palsu.

Jika keadaan sentiasa benar , maka program tidak akan berhenti berjalan. Ia akan tersekat secara kekal dalam gelung.

Jika syarat itu palsu pada kali pertama ia diperiksa , maka badan gelung tidak akan dilaksanakan walaupun sekali.


3. Contoh gelung

Berikut ialah beberapa contoh praktikal gelung dalam tindakan.

Kod Penjelasan
int n = 5;
while (n > 0)
{
   System.out.println(n);
   n--;
}
5 baris akan dipaparkan pada skrin:
5
4
3
2
1
Kod Penjelasan
int  n = 0;
while (n < 10)
{
   System.out.println(n);
   n++;
}
10 baris akan dipaparkan pada skrin:
0
1
...
8
9
Kod Penjelasan
Scanner console = new Scanner(System.in);
while(console.hasNextInt())
{
   int x = console.nextInt();
} 
Program membaca nombor dari papan kekunci selagi nombor dimasukkan.
Kod Penjelasan
while (true)
   System.out.println("C");
Program ini akan mencetak surat pada skrin tanpa henti .C
Kod Penjelasan
Scanner console = new Scanner(System.in);
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
Program ini akan membaca baris dari papan kekunci

sehingga exitdimasukkan.

Dalam contoh sebelumnya, equals()kaedah digunakan untuk membandingkan rentetan. Jika rentetan adalah sama, fungsi akan kembali true. Jika rentetan tidak sama, maka ia akan kembali false.



4. Gelung dalam gelung

Semasa anda mempelajari tentang pernyataan bersyarat, anda melihat bahawa anda boleh menggunakannya untuk melaksanakan logik kompleks dengan menggabungkan berbilang pernyataan bersyarat. Dengan kata lain, dengan menggunakan ifpernyataan di dalam ifpernyataan.

Anda boleh melakukan perkara yang sama dengan gelung. Untuk menulis gelung dalam gelung, anda perlu menulis gelung kedua di dalam badan gelung pertama. Ia akan kelihatan seperti ini:

while (condition for outer loop)
{
   while (condition for inner loop)
   {
     block of statements
   }
}
whilegelung (dengan blok pernyataan ) di dalam whilegelung lain

Mari kita lihat tiga tugasan.

Tugasan 1 . Katakan kita ingin menulis program yang memaparkan perkataan Mompada skrin sebanyak 4 kali. Gelung adalah apa yang kita perlukan. Dan kod kami akan kelihatan seperti ini:

Kod Penjelasan
int  n = 0;
while (n < 4)
{
   System.out.println("Mom");
   n++;
}
4 baris akan dipaparkan pada skrin:
Mom
Mom
Mom
Mom

Tugasan 2 . Kami ingin menulis program yang memaparkan 5 huruf As pada satu baris. Untuk melakukan ini, kita memerlukan gelung sekali lagi. Inilah rupa kod tersebut:

Kod Penjelasan
int n = 0;
while (n < 5)
{
   System.out.print("A");
   n++;
}
Sebaliknya println(), kita akan gunakan print(). Jika tidak, setiap huruf A akan berakhir pada baris yang berasingan.

Output skrin akan menjadi:
AAAAA

Tugasan 3 . Kami ingin memaparkan segi empat tepat yang terdiri daripada huruf As. Segi empat tepat hendaklah terdiri daripada 4 baris dengan 5 lajur. Untuk mencapai ini, kita kini memerlukan gelung bersarang. Kami hanya akan mengambil contoh pertama kami (yang mana kami mengeluarkan 4 baris) dan menggantikan kod untuk mengeluarkan satu baris dengan kod daripada contoh kedua.

Kod Penjelasan
int n = 0;

while (n < 4) { int m = 0;
while (m < 5) { System.out.print("A"); m++; }
System.out.println(); n++; }
 
Gelung luar berwarna ungu. Ia menggunakan npembolehubah untuk mengira bilangan lelaran gelung.

Gelung dalam berwarna hijau. Ia menggunakan mpembolehubah untuk mengira bilangan lelaran gelung.

Kita perlu mengalihkan kursor secara eksplisit ke baris seterusnya selepas gelung dalaman selesai. Jika tidak, semua huruf yang dicetak oleh program akan berakhir pada satu baris.

Output skrin akan menjadi:
AAAAA
AAAAA
AAAAA
AAAAA

Gelung luar dan dalam mesti menggunakan pembolehubah yang berbeza untuk mengira bilangan lelaran gelung. Kami juga terpaksa menambah System.out.println()arahan selepas gelung dalam, kerana gelung itu memaparkan huruf As pada baris yang sama. Setelah huruf pada baris dipaparkan, seseorang perlu mengalihkan kursor ke baris baharu.



5. Membandingkan gelung Java vs Pascal

Ramai daripada anda belajar Pascal di sekolah menengah. Untuk memudahkan anda memahami bahan di sini, lihat perbandingan whilegelung yang ditulis dalam Pascal dan Java ini. Jika anda tidak mengenali Pascal, sila langkau bahagian ini.

Pascal Jawa
i := 3;
While i >= 0 Do
   Begin
      WriteLn(i);
      i := i - 1;
   End;
int i = 3;
while (i >= 0)
{
   System.out.println(i);
   i--;
}
i := 0;
While i < 3 Do
   Begin
      WriteLn(i);
      i := i + 1;
   End;
int i = 0;
while (i < 3)
{
   System.out.println(i);
   i++;
}
IsExit := False;
While Not isExit Do
   Begin
      ReadLn(s);
      isExit :=  (s = 'exit');
   End;
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
While True Do
   WriteLn('C');
while (true)
   System.out.println("C");
While True Do
   Begin
     ReadLn(s);
     If s = 'exit' Then
       Break;
   End;
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}