Keluar dari Berbilang Gelung Bersarang dengan Putus
Walaupun bersarang berbilang gelung 'untuk' ialah pendekatan biasa untuk mengulang struktur data, keluar dari semua secara awal gelung kadangkala diperlukan. Bolehkah kita menggunakan fungsi 'break' untuk tujuan ini?
Keterbatasan 'break'
Malangnya, fungsi 'break' beroperasi dalam skop segeranya gelung. Menggunakannya untuk keluar daripada berbilang gelung bersarang tidak berkesan. Percubaan untuk berbuat demikian hanya menamatkan gelung semasa, meninggalkan gelung bersarang tidak terjejas.
Kes untuk 'goto'
Ironisnya, kenyataan 'goto' yang dipercayai, selalunya yang tidak disukai dalam amalan pengaturcaraan moden, muncul sebagai penyelesaian yang sesuai untuk senario khusus ini. Tidak seperti 'break', 'goto' membenarkan untuk melompat antara blok kod tanpa mengira tahap bersarangnya.
Mengawal Kedalaman Keluar Gelung
Mengawal bilangan gelung yang keluar menggunakan 'goto' melibatkan pelabelan gelung dan menentukan label yang sesuai sebagai destinasi 'goto'. Contohnya, untuk keluar dari dua gelung bersarang:
outer_loop: for (initialization1; condition1; increment1) { inner_loop: for (initialization2; condition2; increment2) { // Exit both loops if (condition) { goto outer_loop; } } }
Dengan melompat ke label yang dikaitkan dengan gelung paling luar, kedua-dua gelung bersarang ditamatkan serta-merta.
Oleh itu, semasa 'break' tidak sesuai untuk keluar daripada berbilang gelung bersarang, 'goto' menyediakan fungsi yang diperlukan, walaupun dengan sintaks yang kurang anggun.
Atas ialah kandungan terperinci Bolehkah `goto` Membantu Keluar dari Berbilang Gelung Bersarang Apabila `break` Gagal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!