Pertimbangkan switch
pernyataan 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.
goto
tidak jahat. Pengikut kultus kargo adalah! Anda tidak dapat membayangkan sampai sejauh mana orang-orang ekstrem dapat menghindarinya goto
karena itu sangat jahat, membuat kode mereka berantakan.
goto
terutama untuk mensimulasikan sesuatu seperti finally
klausa dalam fungsi, di mana sumber daya (file, memori) harus dirilis ketika berhenti, dan mengulangi untuk setiap kasus kesalahan daftar free
dan close
tidak membantu keterbacaan. Meskipun ada satu penggunaan goto
yang ingin saya hindari tetapi tidak bisa, adalah ketika saya ingin keluar dari lingkaran dan saya berada di switch
dalam lingkaran itu.