CodeGym /Java Course /Modul 1 /Menginterupsi sebuah loop

Menginterupsi sebuah loop

Modul 1
Level 6 , Pelajaran 1
Tersedia

1. breakpernyataan

Mari kita lihat contoh dari pelajaran sebelumnya:

Kode Penjelasan
Scanner console = new Scanner(System.in);
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
Program akan membaca satu baris dari keyboard, hingga Anda memasukkan "exit".

Program membaca baris dari konsol hingga kata exitdimasukkan. Jika Anda memasukkan kata ini, maka variabelnya isExit menjadi true, kondisi loop akan menjadi , dan loop akan berakhir."!isExitfalse

Java memiliki pernyataan khusus breakyang memungkinkan Anda menyederhanakan logika semacam itu. Jika breakpernyataan dieksekusi di dalam sebuah loop, maka loop segera berakhir. Program akan mulai mengeksekusi pernyataan yang mengikuti loop. Pernyataannya sangat singkat:

break;

Inilah cara Anda dapat menggunakan breakpernyataan untuk menulis ulang contoh yang baru saja kita diskusikan:

Kode Penjelasan
Scanner console = new Scanner(System.in);
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}
Program akan membaca satu baris dari keyboard, hingga Anda memasukkan "exit".


2. lanjutkan pernyataan

Tapi breakbukan satu-satunya pernyataan Java yang memungkinkan Anda mengontrol perilaku loop. Java juga memiliki continuepernyataan itu. Jika Anda menjalankan continuepernyataan di dalam sebuah loop, iterasi loop saat ini akan berakhir lebih cepat dari jadwal.

Mengeksekusi badan loop satu kali disebut iterasi loop. Pernyataan continuemenyela iterasi saat ini dari loop, tetapi tidak seperti breakpernyataan, itu tidak mengakhiri loop itu sendiri. Pernyataannya juga singkat:

continue;

Pernyataan ini continuesangat nyaman dalam satu lingkaran jika kita ingin 'melewati' eksekusi badan loop dalam situasi tertentu.

Tugas: Kami ingin menulis sebuah program yang mencetak angka dari 1hingga 20tetapi melompati angka yang habis dibagi 7. Seperti inilah tampilan kode ini.

Kode Penjelasan
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
     continue;
   System.out.println(i);
   i++;
}
Program menampilkan angka dari 1hingga 20. Jika bilangan tersebut habis dibagi 7(sisa pembagiannya adalah 7) 0, maka kita lewati untuk menampilkan bilangan tersebut.

Sebenarnya kode ini tidak akan berfungsi , karena iakan selamanya stuck di nomor tersebut 7. Lagi pula, continuepernyataan itu melompati dua pernyataan lain: System.out.println(i)dan i++. Akibatnya, begitu kita mencapai value 7, variabel iakan berhenti berubah dan kita akan berada dalam loop tak terbatas.

Kami menulis kode dengan sengaja untuk mengilustrasikan kesalahan yang sangat umum ini. Bagaimana kita memperbaikinya?

Ada dua opsi di sini:

Opsi 1: ubah isebelum mengeksekusi continue, tetapi setelahi % 7

Opsi 2: selalu bertambah idi awal putaran. Tapi kemudian inilai awal harus 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);
}

Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION