Gelung (pecah dan kembali, teruskan, label) - 1

"Hai, Amigo!"

"Hari ini saya akan memberitahu anda tentang beberapa perkara yang mudah apabila bekerja dengan gelung."

"Yang pertama ialah pemecahan kata kunci . Jika anda menggunakan arahan ini dalam badan gelung, maka gelung akan ditamatkan serta-merta apabila perintah itu dilaksanakan. Berikut ialah contoh:"

Contoh Pengeluaran:
for (int i = 0; i < 10; i++)
{
System.out.println(i);
if (i > 5)
break;
}
0
1
2
3
4
5

"Bolehkah pecah hanya digunakan dalam gelung?"

"Ya. Pernyataan putus hanya boleh digunakan dalam gelung. Apabila pernyataan putus dilaksanakan, gelung ditamatkan serta-merta."

"OK. Faham."

"Hebat. Sekarang perkara kedua yang saya ingin kongsikan ialah kata kunci teruskan. Ia juga hanya boleh digunakan dalam gelung. Apabila arahan ini dilaksanakan, lelaran baharu gelung bermula serta-merta. Dalam erti kata lain, sebarang kod yang tinggal dalam badan gelung hanya dilangkau."

"Ini contohnya:"

Contoh Pengeluaran:
for (int i = 0; i < 10; i++)
{
if (i % 2 == 0)
continue;
System.out.println(i);
}
1
3
5
7
9

"Jadi, sebaik sahaja program mencapai arahan teruskan dalam gelung, ia berhenti melaksanakan kod dalam gelung?"

"Tidak. Lihat, kita mempunyai gelung apabila kita melaksanakan kod yang sama beberapa kali. Dalam contoh di atas, kita mempunyai gelung dari 0 hingga 9, iaitu badan gelung akan dilaksanakan 10 kali. Betul?"

"Ya."

"Satu laluan melalui badan gelung dipanggil lelaran. Gelung kami terdiri daripada 10 lelaran—badan gelung akan dilaksanakan sepuluh kali."

"Ya, itu jelas."

" Arahan continue menamatkan lelaran semasa lebih awal, iaitu sebarang kod yang tinggal di dalam gelung dilangkau dan lelaran baharu bermula."

"Ini satu lagi contoh:"

Contoh
ArrayList list = new ArrayList();
for (Object o: list)
{
if (o == null) continue;
System.out.println(o.toString());
}

"Dalam contoh ini, kami memaparkan perwakilan rentetan semua objek dalam senarai. Tetapi kami melangkau sebarang objek yang batal."

"OK, faham. Saya dapat lihat betapa selesanya ini."

"Ya. Saya juga ingin memberitahu anda tentang label. Ia jarang digunakan di Jawa, kerana ia sering melanggar keindahan logik program. Tetapi anda mungkin menemuinya dalam kod pada satu ketika. Jadi saya lebih suka memberitahu anda tentang mereka daripada anda mendengar tentang mereka di taman permainan."

"Pada suatu masa dahulu ia dibenarkan untuk melompat dari mana-mana baris ke mana-mana baris dalam kod. Kami melakukan ini menggunakan label dan pernyataan goto. Begini rupanya:"

Kod yang mengerikan dengan label
System.out.println("Make cookies,");
label: System.out.println("not");
System.out.println("war");
goto label;

"Dalam contoh ini, selepas arahan label goto dilaksanakan, program melompat ke label bertanda baris .

"Kemudian, semua orang bijak dan memutuskan untuk tidak menggunakan pernyataan goto . Java tidak menyokong goto, tetapi goto adalah perkataan yang dikhaskan. Bukan masalah besar…"

"Jadi, tiada goto dan tiada label di Jawa?"

"Tiada kenyataan goto, tetapi ada label!"

"Macam mana boleh jadi?"

"Di Java, label boleh digunakan dengan arahan continue dan break. Ia digunakan apabila anda mempunyai banyak gelung bersarang."

"Sebagai contoh, katakan anda mempunyai 5 gelung bersarang dan apabila beberapa syarat dipenuhi, anda mahu keluar daripada tiga daripadanya, tetapi tidak semuanya. Label ialah cara yang elegan untuk melakukan ini:"

Contoh
label1: for (int i = 0; i < 10; i++)
 label2: for (int j = 0; j < 10; j++)
  label3: for (int k =0; k < 10; k++)
   if (i == j && j == k)
    break label2;

"Dalam contoh ini, apabila penyataan putus dilaksanakan, kita tidak keluar dari gelung dengan pembolehubah k, tetapi dari gelung berlabel label2 - iaitu kita segera keluar dari dua gelung dengan k dan j."

"Berapa kerapkah itu digunakan?"

"Sejujurnya, tidak selalunya, tetapi anda tidak pernah tahu. Mungkin anda akan melihatnya suatu masa nanti. Ini adalah asas sintaks—anda perlu tahu semua ini!"

"OK. Terima kasih, Bilaabo."