Apa itu Loops?
Loops memungkinkan bagian tertentu dari kode dalam program untuk dieksekusi selama jumlah yang diinginkan.
Dalam tutorial ini, kita akan melihat konsep loop di PL / SQL dan aliran kontrol dalam loop. Anda akan belajar-
- Pengantar Konsep Loops
- Pernyataan Kontrol Loop
- Jenis Loop di PL / SQL
- Pernyataan Loop Dasar
- Pelabelan Loops
Pengantar Konsep Loops
Konsep loop memberikan keuntungan berikut dalam pengkodean.
- Dapat digunakan kembali kode
- Ukuran kode dikurangi
- Aliran kontrol yang mudah
- Mengurangi Kompleksitas
Diagram di bawah ini menunjukkan konsep perulangan secara bergambar
Pada diagram di atas, kondisi loop akan diperiksa, dan selama kondisi loop terpenuhi, blok eksekusi akan dieksekusi.
Dalam setiap iterasi, variabel penghitung pengulangan yang benar-benar menentukan kondisi pengulangan harus memodifikasi untuk membuat kontrol keluar dari pengulangan. Dalam beberapa kasus, variabel penghitung loop ini adalah operator increment / decrement untuk hitungan yang telah ditentukan, dan dalam beberapa kasus, ini adalah kondisi pencarian yang terus mengeksekusi blok sampai itu memenuhinya.
Pernyataan Kontrol Loop
Sebelum mempelajari konsep loop, Anda wajib mempelajari pernyataan kontrol loop. Pernyataan kontrol loop adalah pernyataan yang benar-benar mengontrol aliran eksekusi di dalam loop. Di bawah ini adalah penjelasan rinci tentang pernyataan kontrol loop.
TERUS
Kata kunci ini mengirimkan instruksi ke mesin PL / SQL bahwa setiap kali mesin PL / SQL menemukan kata kunci ini di dalam loop, maka ia akan melewatkan kode yang tersisa di blok eksekusi kode, dan iterasi berikutnya akan segera dimulai. Ini akan digunakan terutama jika kode di dalam loop ingin dilewati untuk nilai iterasi tertentu.
KELUAR / KELUAR SAAT
Kata kunci ini mengirimkan instruksi ke mesin PL / SQL bahwa setiap kali mesin PL / SQL menemukan kata kunci ini, maka ia akan segera keluar dari loop saat ini. Jika mesin PL / SQL menemukan EXIT dalam loop bersarang, maka itu akan keluar dari loop yang telah ditentukan, yaitu dalam loop bersarang, memberikan EXIT di loop dalam hanya akan keluar dari kontrol dari loop dalam tetapi bukan dari lingkaran luar. 'EXIT WHEN' diikuti dengan ekspresi yang memberikan hasil Boolean. Jika hasilnya BENAR, maka kontrol akan KELUAR.
PERGI KE
Pernyataan ini akan mentransfer kontrol ke pernyataan berlabel ("GOTO
- Transfer kendali hanya dapat dilakukan di dalam subprogram.
- Transfer of control tidak dapat dilakukan dari bagian penanganan pengecualian ke bagian eksekusi
Penggunaan pernyataan ini tidak disarankan kecuali jika tidak ada alternatif lain, karena ketertelusuran kontrol kode akan sangat sulit dalam program karena pengalihan kontrol dari satu bagian ke bagian lain.
Jenis Loop di PL / SQL
PL / SQL menyediakan tiga jenis loop berikut
- Pernyataan loop dasar
- Untuk pernyataan loop
- Sementara pernyataan loop
Pernyataan Loop Dasar
Pernyataan loop ini adalah struktur loop paling sederhana dalam PL / SQL. Blok eksekusi dimulai dengan kata kunci 'LOOP' dan diakhiri dengan kata kunci 'END LOOP'.
Kondisi keluar harus diberikan di dalam blok eksekusi ini sehingga kontrol keluar dari loop.
Diperlukan kata kunci EXIT untuk diberikan secara eksplisit di bagian eksekusi untuk keluar dari loop.
LOOPPenjelasan Sintaks:END LOOP;
- Dalam sintaks di atas, kata kunci 'LOOP' menandai awal loop dan 'END LOOP' menandai akhir loop.
- Blok eksekusi berisi semua kode yang perlu dieksekusi termasuk kondisi EXIT.
- Bagian eksekusi dapat berisi pernyataan eksekusi apa pun.
Catatan: Pernyataan loop dasar tanpa kata kunci EXIT akan menjadi INFINITE-LOOP yang tidak akan pernah berhenti.
Contoh 1 : Dalam contoh ini, kita akan mencetak angka dari 1 hingga 5 menggunakan pernyataan loop dasar. Untuk itu, kami akan mengeksekusi kode 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 Kode:
- Baris kode 2 : Mendeklarasikan variabel 'a' sebagai tipe data 'NUMBER' dan menginisialisasinya dengan nilai '1'.
- Baris kode 4 : Mencetak pernyataan "Program dimulai".
- Baris kode 5: Kata kunci 'LOOP' menandai awal loop.
- Baris kode 6: Mencetak nilai 'a'.
- Baris kode 7: Menambahkan nilai 'a' dengan +1.
- Baris kode 8: Memeriksa apakah nilai 'a' lebih besar dari 5.
- Baris kode 9: Kata kunci 'END LOOP' menandai akhir dari blok eksekusi.
- Kode dari baris 6 ke baris 8 akan terus dijalankan hingga 'a' mencapai nilai 6, karena kondisi akan mengembalikan TRUE, dan kontrol akan KELUAR dari loop.
- Baris kode 10: Mencetak pernyataan "Program selesai"
Pelabelan Loops
Dalam PL / SQL, loop dapat diberi label. Label harus diapit antara "<<" dan ">>". Pemberian label pada loop khususnya pada kode loop bersarang akan memberikan lebih banyak keterbacaan. Label dapat diberikan dalam perintah EXIT untuk keluar dari loop tertentu. Menggunakan label, kontrol dapat dibuat untuk langsung keluar dari loop luar dari loop bersarang dari mana saja di dalam loop, dengan memberikan perintah keluar diikuti dengan label loop luar.
<Penjelasan Sintaks:>LOOP . < > LOOP --inner END LOOP; . END LOOP;
- Dalam sintaks di atas, loop keluar memiliki satu loop lagi di dalamnya.
- '<
>' dan '< >' adalah label dari loop ini.
Contoh 1 : Dalam contoh ini, kita akan mencetak angka mulai dari 1 menggunakan pernyataan loop Dasar. Setiap nomor akan dicetak sebanyak nilainya. Batas atas rangkaian ditetapkan di bagian deklarasi program. Mari kita pelajari bagaimana kita dapat menggunakan konsep label untuk mencapai hal ini. Untuk itu, kami akan mengeksekusi kode 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 Kode:
- Baris kode 2-3 : Mendeklarasikan variabel 'a' dan 'b' sebagai tipe data 'NUMBER'.
- Baris kode 4 : Mendeklarasikan variabel 'upper_limit' sebagai tipe data 'NUMBER' dengan nilai '4'
- Baris kode 6 : Mencetak pernyataan "Program dimulai".
- Baris kode 7: Loop luar diberi label sebagai "outer_loop"
- Baris kode 9: Nilai 'a' bertambah 1.
- Baris kode 11: Loop dalam diberi label sebagai "inner_loop".
- Baris kode 13: Kondisi EXIT yang memeriksa apakah nilai 'a' lebih tinggi dari nilai 'upper_limit'. Jika tidak maka ia akan melangkah lebih jauh, jika tidak ia langsung keluar dari loop luar.
- Baris kode 14: Mencetak nilai 'b'.
- Baris kode 15: Menambahkan nilai 'b' dengan +1.
- Baris kode 16: Kondisi EXIT yang memeriksa apakah nilai 'b' lebih tinggi dari 'a'. Jika demikian, maka itu akan keluar dari kontrol dari loop dalam.
- Baris kode 14: Mencetak pernyataan "Program selesai"
Ringkasan
Loop | Loop Dasar |
Kriteria KELUAR | Keluar saat menemukan kata kunci 'KELUAR' di bagian eksekusi |
Pemakaian | Baik digunakan saat keluar tidak didasarkan pada kondisi tertentu. |