Rumah >pembangunan bahagian belakang >C++ >Mengapa Ralat \'Lompat ke Label Kes\' Berlaku dalam Pernyataan Suis?
Penyelesaian Ralat: "Lompat ke Label Kes" dalam Pernyataan Suis
Dalam coretan kod yang disediakan:
< pra>
int main()
{
int choice; std::cin >> choice; switch(choice) { case 1: int i=0; break; case 2: // error here }
}
ralat penyusunan berlaku kerana pembolehubah yang diisytiharkan dalam satu label kes boleh diakses dalam label kes berikutnya melainkan dilampirkan secara eksplisit dalam blok.
Dalam senario ini, pembolehubah yang diisytiharkan dalam kes 1 kekal dalam skop untuk kes 2, tetapi kod permulaannya tidak dilaksanakan. Mengakses pembolehubah yang tidak dimulakan boleh membawa kepada tingkah laku atau ralat yang tidak dijangka.
Untuk menyelesaikan isu ini, sertakan setiap label kes dalam bloknya sendiri:
suis(pilihan)
{ case 1: { int i=0; break; } case 2: { // Code for case 2 break; } }
Ini memastikan pembolehubah yang diisytiharkan dalam satu kes tidak kelihatan atau boleh diakses di luar kes itu. Setiap kes kini mempunyai skop terpencilnya sendiri, menghalang ralat yang berkaitan dengan keterlihatan berubah-ubah.
Atas ialah kandungan terperinci Mengapa Ralat \'Lompat ke Label Kes\' Berlaku dalam Pernyataan Suis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!