1. breakpernyataan

Mari kita lihat contoh dari pelajaran sebelumnya:

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 satu baris dari papan kekunci, sehingga anda memasukkan "exit".

Program membaca baris dari konsol sehingga perkataan exitdimasukkan. Jika anda memasukkan perkataan ini, maka isExit pembolehubah menjadi true, keadaan gelung akan menjadi , dan gelung akan berakhir."!isExitfalse

Java mempunyai pernyataan khas breakyang membolehkan anda memudahkan logik sedemikian. Jika breakkenyataan dilaksanakan di dalam gelung, maka gelung itu tamat serta-merta. Program akan mula melaksanakan pernyataan yang mengikuti gelung. Kenyataannya sangat ringkas:

break;

Begini cara anda boleh menggunakan breakpernyataan untuk menulis semula contoh yang baru kita bincangkan:

Kod Penjelasan
Scanner console = new Scanner(System.in);
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}
Program ini akan membaca satu baris dari papan kekunci, sehingga anda memasukkan "exit".


2. sambung kenyataan

Tetapi breakbukan satu-satunya pernyataan Java yang membolehkan anda mengawal tingkah laku gelung. Java juga mempunyai continuekenyataan. Jika anda melaksanakan continuepernyataan di dalam gelung, lelaran semasa gelung akan berakhir lebih awal daripada jadual.

Melaksanakan badan gelung sekali dipanggil lelaran gelung. Pernyataan continuemengganggu lelaran semasa gelung, tetapi tidak seperti breakpernyataan itu, ia tidak menamatkan gelung itu sendiri. Kenyataan itu juga ringkas:

continue;

Pernyataan ini continuesangat mudah dalam gelung jika kita ingin 'melangkau' pelaksanaan badan gelung dalam situasi tertentu.

Tugas: Kami ingin menulis program yang mencetak nombor dari 1ke 20tetapi melangkau nombor yang boleh dibahagi dengan 7. Inilah rupa kod ini.

Kod Penjelasan
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
     continue;
   System.out.println(i);
   i++;
}
Program ini memaparkan nombor dari 1hingga 20. Jika nombor boleh dibahagi dengan 7(baki pembahagian dengan 7ialah 0), maka kita langkau memaparkan nombor itu.

Sebenarnya, kod ini tidak akan berfungsi , kerana iakan selamanya terperangkap pada nombor 7. Lagipun, continuekenyataan itu melangkau dua kenyataan lain: System.out.println(i)dan i++. Akibatnya, sebaik sahaja kita mencapai nilai 7, pembolehubah iakan berhenti berubah dan kita akan berada dalam gelung tak terhingga.

Kami menulis kod dengan cara ini dengan sengaja untuk menggambarkan kesilapan yang sangat biasa ini. Bagaimana kita membetulkannya?

Terdapat dua pilihan di sini:

Pilihan 1: tukar isebelum melaksanakan continue, tetapi selepasi % 7

Pilihan 2: sentiasa meningkat ipada permulaan gelung. Tetapi inilai permulaan mestilah 0.

Pilihan 1 Pilihan 2
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
   {
     i++;
     continue;
   }
   
   System.out.println(i);
   i++;
}
int i = 0;
while (i < 20)
{
   i++;
   if ( (i % 7) == 0)
     continue;
   System.out.println(i);
}