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
Susan Sarandonasal
2024-12-09 22:33:23234semak imbas

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");
}

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");
}

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!

Kenyataan:
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