Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Keluar dari Gelung dari Dalam Pernyataan Suis dalam C : Menggunakan `goto` atau Bendera?
Pendekatan Alternatif untuk Keluar dari Gelung dari Dalam Suis
Dalam senario tertentu, seseorang mungkin menghadapi keperluan untuk menamatkan gelung penutup dari dalam pernyataan suis. Walaupun menggunakan bendera ialah pendekatan biasa, C menyediakan penyelesaian alternatif: menggunakan pernyataan goto.
Dilema:
Pertimbangkan coretan kod berikut:
<code class="cpp">while(true) { switch(msg->state) { case MSGTYPE: // ... break; // ... more stuff ... case DONE: // **HERE, I want to break out of the loop itself** } }</code>
Matlamatnya adalah untuk keluar dari gelung serta-merta apabila keadaan msg->sama dengan DONE.
Menggunakan goto:
C membenarkan penggunaan pernyataan goto untuk melompat secara eksplisit ke lokasi tertentu dalam kod. Ini boleh dimanfaatkan untuk mencapai gelagat yang diingini:
<code class="cpp">while ( ... ) { switch( ... ) { case ...: goto exit_loop; // Jump to this location when msg->state is DONE } } exit_loop: ; // Label for jump target</code>
Dalam kod yang diubah suai ini, apabila msg->state sama dengan DONE, pernyataan goto mengarahkan aliran pelaksanaan ke label exit_loop. Ini seterusnya keluar dari kedua-dua suis dan gelung penutup.
Nota: Adalah penting untuk menggunakan label (:) untuk mengenal pasti sasaran pernyataan goto. Menggunakan goto secara sembarangan boleh menyebabkan kod spageti dan isu kebolehselenggaraan.
Atas ialah kandungan terperinci Bagaimana untuk Keluar dari Gelung dari Dalam Pernyataan Suis dalam C : Menggunakan `goto` atau Bendera?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!