Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pernyataan switch tidak mencakup semua kasus. Pertimbangkan untuk menambahkan label 'default' (es.79).
Keterangan
Pemeriksaan ini mencakup label yang hilang default dalam pernyataan pengalihan yang beralih ke jenis non-enumerasi, seperti , , intdan sebagainyachar.
Untuk informasi selengkapnya, lihat ES.79: Gunakan default untuk menangani kasus umum (hanya) di Panduan Inti C++.
Contoh
Contoh ini memiliki label yang hilang default saat beralih melalui int.
void fn1();
void fn2();
void foo(int a)
{
switch (a)
{
case 0:
fn1();
break;
case 2:
fn2();
break;
}
}
Solusi
Untuk memperbaiki masalah ini, sisipkan default label untuk mencakup semua kasus yang tersisa.
void fn1();
void fn2();
void default_action();
void foo(int a)
{
switch (a)
{
case 0:
fn1();
break;
case 2:
fn2();
break;
default:
default_action();
break;
}
}
Jika tidak ada default tindakan yang perlu diambil, sisipkan label kosong default untuk menunjukkan bahwa kasus lain belum dilupakan.
void fn1();
void fn2();
void foo(int a)
{
switch (a)
{
case 0:
fn1();
break;
case 2:
fn2();
break;
default:
// do nothing for the rest of the cases
break;
}
}