Apa itu Gelung?
Gelung membolehkan bahagian tertentu kod dalam program dapat dilaksanakan seberapa banyak kali yang diinginkan.
Dalam tutorial ini, kita akan melihat konsep gelung dalam PL / SQL dan aliran kawalan dalam gelung. Awak akan belajar-
- Pengenalan Konsep Gelung
- Penyataan Kawalan Gelung
- Jenis Gelung dalam PL / SQL
- Penyataan Gelung Asas
- Pelabelan Gelung
Pengenalan Konsep Gelung
Konsep gelung memberikan kelebihan berikut dalam pengekodan.
- Kegunaan semula kod
- Mengurangkan saiz kod
- Aliran kawalan yang mudah
- Kerumitan Berkurang
Gambar rajah di bawah menunjukkan konsep gelung secara bergambar
Dalam rajah di atas, keadaan gelung akan diperiksa, dan selagi keadaan gelung dipenuhi, blok pelaksanaan akan dijalankan.
Dalam setiap lelaran, pemboleh ubah penghitung gelung yang benar-benar menentukan keadaan gelung harus diubah untuk membuat kawalan keluar dari gelung. Dalam beberapa kes, pemboleh ubah penghitung gelung ini adalah operator kenaikan / pengurangan untuk kiraan yang telah ditentukan, dan dalam beberapa kes, ini adalah keadaan carian yang terus melaksanakan blok sehingga memuaskannya.
Penyataan Kawalan Gelung
Sebelum mempelajari konsep gelung, wajib mempelajari pernyataan kawalan gelung. Pernyataan kawalan gelung adalah yang benar-benar mengawal aliran pelaksanaan di dalam gelung. Berikut adalah penerangan terperinci mengenai pernyataan kawalan gelung.
TERUSKAN
Kata kunci ini mengirimkan arahan ke mesin PL / SQL bahawa setiap kali mesin PL / SQL menemui kata kunci ini di dalam gelung, maka ia akan melewati kod yang tersisa di blok pelaksanaan kod, dan lelaran seterusnya akan segera dimulakan. Ini akan digunakan terutamanya jika kod di dalam gelung ingin dilangkau untuk nilai lelaran tertentu.
EXIT / EXIT KETIKA
Kata kunci ini menghantar arahan kepada mesin PL / SQL bahawa setiap kali mesin PL / SQL menemui kata kunci ini, maka kata kunci tersebut akan segera keluar dari gelung semasa. Sekiranya mesin PL / SQL menemui EXIT dalam gelung bersarang, maka ia akan keluar dari gelung yang telah ditentukan, iaitu dalam gelung bersarang, memberikan EXIT dalam gelung dalam hanya akan keluar dari kawalan dari gelung dalam tetapi bukan dari gelung luar. 'EXIT WHEN' diikuti oleh ungkapan yang memberikan hasil Boolean. Sekiranya hasilnya BENAR, maka kawalan akan TELAH.
PERGI KE
Pernyataan ini akan memindahkan kawalan ke pernyataan berlabel ("GOTO
- Pemindahan kawalan dapat dilakukan hanya dalam subprogram.
- Pemindahan kawalan tidak dapat dilakukan dari bahagian pengecualian ke bahagian pelaksanaan
Penggunaan pernyataan ini tidak digalakkan melainkan tidak ada alternatif lain, kerana kebolehlacakan kawalan kod akan menjadi sangat sukar dalam program ini kerana pemindahan kawalan dari satu bahagian ke bahagian yang lain.
Jenis Gelung dalam PL / SQL
PL / SQL menyediakan tiga jenis gelung berikut
- Penyataan gelung asas
- Untuk penyataan gelung
- Sementara penyataan gelung
Penyataan Gelung Asas
Pernyataan gelung ini adalah struktur gelung termudah dalam PL / SQL. Blok pelaksanaan bermula dengan kata kunci 'LOOP' dan berakhir dengan kata kunci 'END LOOP'.
Keadaan keluar harus diberikan di dalam blok pelaksanaan ini sehingga kawalan keluar dari gelung.
Ia memerlukan kata kunci EXIT untuk diberikan secara eksplisit di bahagian pelaksanaan untuk keluar dari gelung.
LOOPPenjelasan Sintaks:END LOOP;
- Dalam sintaks di atas, kata kunci 'LOOP' menandakan permulaan gelung dan 'END LOOP' menandakan akhir gelung.
- Blok pelaksanaan mengandungi semua kod yang perlu dilaksanakan termasuk keadaan EXIT.
- Bahagian pelaksanaan boleh mengandungi sebarang pernyataan pelaksanaan.
Catatan: Pernyataan gelung asas tanpa kata kunci EXIT akan menjadi INFOITE-LOOP yang tidak akan berhenti.
Contoh 1 : Dalam contoh ini, kita akan mencetak nombor dari 1 hingga 5 menggunakan pernyataan gelung asas. Untuk itu, kami akan melaksanakan kod berikut.
DECLAREa NUMBER:=1;BEGINdbms_output.put_line('Program started.');LOOPdbms_output.put_line(a);a:=a+1;EXIT WHEN a>5;END LOOP;dbms_output.put_line('Program completed');END:/
Penjelasan Kod:
- Baris kod 2 : Menyatakan pemboleh ubah 'a' sebagai 'NOMBOR' jenis data dan memulakannya dengan nilai '1'.
- Baris kod 4 : Mencetak pernyataan "Program dimulakan".
- Baris kod 5: Kata kunci 'LOOP' menandakan permulaan gelung.
- Baris kod 6: Mencetak nilai 'a'.
- Baris kod 7: Menambah nilai 'a' dengan +1.
- Baris kod 8: Memeriksa sama ada nilai 'a' lebih besar daripada 5.
- Baris kod 9: Kata kunci 'END LOOP' menandakan akhir blok pelaksanaan.
- Kod dari baris 6 hingga baris 8 akan terus dilaksanakan sehingga 'a' mencapai nilai 6, kerana keadaan akan kembali BENAR, dan kawalan akan keluar dari gelung.
- Baris kod 10: Mencetak pernyataan "Program selesai"
Pelabelan Gelung
Dalam PL / SQL, gelung boleh dilabel. Label hendaklah dilampirkan di antara "<<" dan ">>". Pelabelan gelung terutamanya dalam kod gelung bersarang akan memberikan lebih banyak kesediaan membaca. Label boleh diberikan dalam perintah EXIT untuk keluar dari gelung tertentu. Dengan menggunakan label, kawalan dapat dibuat untuk langsung keluar dari gelung luar gelung bersarang dari mana saja di dalam gelung, dengan memberikan perintah keluar diikuti dengan label gelung luar.
<Penjelasan Sintaks:>LOOP . < > LOOP --inner END LOOP; . END LOOP;
- Dalam sintaks di atas, gelung keluar mempunyai satu lagi gelung di dalamnya.
- '<
>' dan '< >' adalah label gelung ini.
Contoh 1 : Dalam contoh ini, kita akan mencetak nombor bermula dari 1 menggunakan pernyataan gelung asas. Setiap nombor akan dicetak seberapa banyak nilainya. Had atas siri ditetapkan pada bahagian deklarasi program. Mari kita pelajari bagaimana kita boleh menggunakan konsep label untuk mencapainya. Untuk itu, kami akan melaksanakan kod berikut
DECLAREa NUMBER:=0;b NUMBER;upper-limit NUMBER :=4;BEGINdbms_output.put_line(‘Program started.' );«outerloop» LOOPa:=a+1;b:=l;«inner loop»LOOPEXIT outer_loop WHEN a > upper_limit;dbms_output.put_line(a);b:=b+l;EXIT inner_loop WHEN b>a;END LOOP;END LOOP;dbms_output.put_line('Program completed.');END;/
Penjelasan Kod:
- Baris kod 2-3 : Menyatakan pemboleh ubah 'a' dan 'b' sebagai 'NOMBOR' jenis data.
- Baris kod 4 : Menyatakan pemboleh ubah 'upper_limit' sebagai 'NOMBOR' jenis data dengan nilai '4'
- Baris kod 6 : Mencetak pernyataan "Program dimulakan".
- Baris kod 7: Gelung luar telah dilabel sebagai "luar_loop"
- Baris kod 9: Nilai 'a' meningkat oleh 1.
- Baris kod 11: Gelung dalaman telah dilabel sebagai "inner_loop".
- Baris kod 13: Keadaan EXIT yang memeriksa sama ada nilai 'a' lebih tinggi daripada nilai 'upper_limit'. Sekiranya tidak maka ia akan melangkah lebih jauh, yang lain keluar dari gelung luar secara langsung.
- Baris kod 14: Mencetak nilai 'b'.
- Baris kod 15: Menambah nilai 'b' dengan +1.
- Baris kod 16: Keadaan EXIT yang memeriksa sama ada nilai 'b' lebih tinggi daripada 'a'. Sekiranya demikian, maka ia akan keluar dari kawalan dari gelung dalam.
- Baris kod 14: Mencetak pernyataan "Program selesai"
Ringkasan
Gelung | Gelung Asas |
Kriteria EXIT | Keluar ketika menemui kata kunci 'EXIT' di bahagian pelaksanaan |
Penggunaan | Bagus digunakan ketika keluar tidak berdasarkan keadaan tertentu. |