Interrupting loop

All lectures for JV purposes
tingkat , wulangan
kasedhiya

"Halo, Amigo!

"Hallo Ellie."

"Sampeyan wis sinau loops, lan sing kelangan."

"Aku setuju! Saiki aku babar blas ora ngerti carane urip tanpa wong."

"Kadhangkala sampeyan bisa nindakake tanpa wong-wong mau ... Nanging luwih kerep sampeyan butuh wong-wong mau. Dina iki kita bakal ngomong babagan kahanan nalika sampeyan kudu metu saka puteran luwih dhisik."

"Maksudmu, nalika syarat kanggo nerusake loop bener, nanging sampeyan isih kudu metu saka loop?"

"Persis! Kadhangkala sampeyan muni kaya sampeyan wis dadi programmer. Oalah, kanggo metu saka daur ulang ahead saka jadwal, sampeyan bisa nggunakake statement break . Deleng conto ing ngisor iki:

Kode Panjelasan
Scanner console = new Scanner(System.in);
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
Program bakal maca baris saka keyboard, nganti sampeyan ngetik "exit".

"Aku weruh. Program maca garis saka console. Yen sampeyan ngetik "exit", banjur isExitvariabel dadi true, kondisi daur ulang bakal , lan daur ulang bakal mungkasi."!isExitfalse

"Bener. Dadi, Jawa duwe breakstatement khusus sing ngidini sampeyan nyederhanakake logika kasebut. Yen breakstatement dieksekusi ing jero loop, loop bakal langsung rampung. Program bakal miwiti nglakokake statement sing ngetutake loop. Pernyataan kasebut ringkes banget. :

break;

"Mangkene carane sampeyan bisa nggunakake breakstatement kanggo nulis ulang conto sing lagi wae dibahas:

Kode Panjelasan
Scanner console = new Scanner(System.in);
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}
Program bakal maca baris saka keyboard, nganti sampeyan ngetik "exit".

"Mungkin aku bakal kelingan. Aku rumangsa bakal migunani."

"Nanging breakora mung statement Jawa sing ngijini sampeyan ngontrol prilaku daur ulang. Jawa uga duwe statement continue. Yen sampeyan nglakokake continuestatement ing daur ulang, pengulangan saiki daur ulang bakal mungkasi ahead saka jadwal."

"Apa sing dimaksud karo iterasi?"

"Ulangan loop minangka salah sawijining eksekusi awak daur ulang. Pernyataan kasebut continuengganggu pengulangan loop saiki, nanging ora kaya breakpernyataan kasebut, ora mungkasi loop kasebut. Pernyataan kasebut uga ringkes:

continue;

"Dadi, continuestatement kasebut bisa digunakake ing loop yen kita pengin 'skip' eksekusi iterasi tartamtu saka loop?"

"Persis. Apa sampeyan ngerti prabédan antarane breaklan continue? Yen sampeyan kudu golek pitung antarane 20 digit non-baleni, apa jenis statement interupsi loop lan loop sing bakal sampeyan gunakake?

"Hmm... Aku bakal mbukak liwat kabeh nomer, lan yen aku nemokake 7, banjur aku bakal nglakokaké a break."

"Apa yen sampeyan kudu nampilake nomer saka 1kanggo 20kajaba nomer sing bisa dibagi dening 7?"

"Inggih, kene aku mbokmenawa perlu continue, amarga aku ora pengin metu saka loop. Nanging aku isih ora ngerti."

"Ayo kula nuduhake sampeyan carane ngatasi masalah iki. Iki kaya kode iki."

Kode Panjelasan
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
     continue;
   System.out.println(i);
   i++;
}
Program nampilake angka saka 1nganti 20. Yen nomer bisa dibagi dening 7(sisa divisi dening 7) 0 , banjur kita skip nampilake nomer.

"Yagene kowe ndeleng aku curiga banget, Ellie? Apa ana sing nyekel kene?"

"Sampeyan ora bisa diapusi, Amigo! Pancen, kode iki ora bisa digunakake kanthi bener . Iku bakal nampilake 6 digit pisanan, lan banjur ibakal tetep macet ing salawas-lawase ing nomer 7. Sawise kabeh, continuestatement skips loro statements liyane: System.out.println(i)lan i++. Minangka. asil, yen kita tekan nilai 7, variabel ibakal mandheg ganti lan kita bakal ana ing daur ulang tanpa wates. Aku nulis kode kanthi cara iki kanthi sengaja kanggo nggambarake kesalahan sing umum banget."

"Piye carane ndandani?"

"Ana rong pilihan ing kene:"

Opsi 1: ganti isadurunge nglakokake continue, nanging sawisei % 7

Pilihan 2: tansah nambah iing awal daur ulang. Nanging banjur inilai wiwitan kudu 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);
}

"Apik banget! Aku bakal nyoba ora nggawe kesalahan iki."

"Aku bakal kelingan janjimu!"

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