Rumah >pembangunan bahagian belakang >C++ >Mengapa Ralat \'Lompat ke Label Kes\' Berlaku dalam Pernyataan Suis?

Mengapa Ralat \'Lompat ke Label Kes\' Berlaku dalam Pernyataan Suis?

Barbara Streisand
Barbara Streisandasal
2024-10-28 07:48:30302semak imbas

Why Does

Penyelesaian Ralat: "Lompat ke Label Kes" dalam Pernyataan Suis

Dalam coretan kod yang disediakan:

< pra>

serta

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!

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