Pertimbangkan switchpernyataan berikut :
switch( value )
{
case 1:
return 1;
default:
value++;
// fall-through
case 2:
return value * 2;
}
Kode ini mengkompilasi, tetapi apakah ini valid (= perilaku yang ditentukan) untuk C90 / C99? Saya belum pernah melihat kode di mana kasus default bukan kasus terakhir.
EDIT:
Seperti yang ditulis Jon Cage dan KillianDS : ini adalah kode yang sangat jelek dan membingungkan dan saya sangat menyadarinya. Saya hanya tertarik pada sintaks umum (apakah didefinisikan?) Dan output yang diharapkan.
gototidak jahat. Pengikut kultus kargo adalah! Anda tidak dapat membayangkan sampai sejauh mana orang-orang ekstrem dapat menghindarinya gotokarena itu sangat jahat, membuat kode mereka berantakan.
gototerutama untuk mensimulasikan sesuatu seperti finallyklausa dalam fungsi, di mana sumber daya (file, memori) harus dirilis ketika berhenti, dan mengulangi untuk setiap kasus kesalahan daftar freedan closetidak membantu keterbacaan. Meskipun ada satu penggunaan gotoyang ingin saya hindari tetapi tidak bisa, adalah ketika saya ingin keluar dari lingkaran dan saya berada di switchdalam lingkaran itu.