Rumah > Java > javaTutorial > Mengapa C Tidak Memasukkan Pernyataan `break` Secara Automatik Selepas Pernyataan `case` dalam Pernyataan `switch`?

Mengapa C Tidak Memasukkan Pernyataan `break` Secara Automatik Selepas Pernyataan `case` dalam Pernyataan `switch`?

Susan Sarandon
Lepaskan: 2024-12-09 22:33:23
asal
299 orang telah melayarinya

Why Doesn't C   Automatically Insert `break` Statements After `case` Statements in `switch` Statements?

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:

  • Tingkah Laku Selesai: Dalam situasi tertentu, mungkin diingini beberapa kes melaksanakan blok kod yang sama. Sebagai contoh, pertimbangkan perkara berikut:
switch (ch) {
  case 'A':
  case 'B':
  case 'C':
    printf("Vowel\n");
    break;

  default:
    printf("Consonant\n");
}
Salin selepas log masuk

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.

  • Fungsi Gabungan: Kadangkala, beberapa kes berkongsi fungsi yang serupa. Jika blok kod untuk kes ini digabungkan, ia boleh meningkatkan kebolehbacaan dan kebolehselenggaraan kod. Berikut ialah contoh:
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");
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan