Rumah >Java >javaTutorial >Mengapa C Tidak Memasukkan Pernyataan `break` Secara Automatik Selepas Pernyataan `case` dalam Pernyataan `switch`?
Keperluan Penyataan Pecah Selepas Pernyataan Kes dalam C
Pernyataan suis C menilai satu ungkapan dan melaksanakan blok kod tertentu berdasarkan label kes yang sepadan. Walaupun pengkompil tidak memasukkan pernyataan putus secara automatik selepas setiap blok kes, keputusan reka bentuk ini mempunyai sebab yang mendalam dan menawarkan fleksibiliti praktikal.
Mengapa Tiada Pernyataan Pecah Automatik?
Secara sejarah, pilihan reka bentuk ini berpunca daripada batasan seni bina pemproses ARM. Dalam versi awal set arahan ARM, arahan putus membawa penalti prestasi. Dengan meninggalkan sisipan penyataan putus kepada pengaturcara, pengkompil membenarkan pengoptimuman dan mengurangkan kitaran arahan dalam senario tertentu.
Apabila Pelbagai Blok Kod Dilaksanakan
Walaupun tiada daripada kenyataan pemecahan automatik, terdapat kes penggunaan yang sah untuk membenarkan berbilang blok kod laksanakan:
switch (ch) { case 'A': case 'B': case 'C': printf("Vowel\n"); break; default: printf("Consonant\n"); }
Di sini, jika aksara input ialah 'A', 'B' atau 'C', atur cara hendaklah mencetak "Vokal." Dengan menggunakan blok kod tunggal untuk kes ini, ia boleh mengelakkan pertindihan kod dan mengekalkan kejelasan.
switch (ch) { case '1': case '2': case '3': printf("Low number\n"); break; case '4': printf("Medium number\n"); break; default: printf("High number\n"); }
Di sini, tiga kes pertama mengendalikan nombor yang rendah, dan dengan itu mereka melaksanakan blok kod yang sama.
Walaupun gagal dianggap sebagai pengaturcaraan anti- corak dalam kebanyakan kes, terdapat keadaan di mana ia boleh terbukti bermanfaat, selagi kod itu didokumentasikan dengan baik dan implikasinya secara menyeluruh faham.
Atas ialah kandungan terperinci Mengapa C Tidak Memasukkan Pernyataan `break` Secara Automatik Selepas Pernyataan `case` dalam Pernyataan `switch`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!