将来の読者と後で私自身の正気のために、ケースがないステートメント(すべてのケースがカバーされているため)または何もしないはずの最後のelseが続くswitch
ステートメントを省略してはならないことを絶対に明確にしたいですそして、その趣旨のコメントが含まれています(例を参照)。default
if-elseif-else
ただし、ステートメントにdefault
ケースを含めswitch
て空のままにしておくと、ケース内にセミコロンを入れる必要があります。そうしdefault
ないと、コンパイラエラーが発生します。'}'"が発生する前。どうして?!
例:コンパイラエラーを生成します
switch(direction) {
case MOVE_UP:
//...
break;
case MOVE_RIGHT:
//...
break;
case MOVE_DOWN:
//...
break;
case MOVE_LEFT:
//...
break;
default:
/* DO NOTHING */
}
例:コンパイラエラーを生成しません
switch(direction) {
case MOVE_UP:
//...
break;
case MOVE_RIGHT:
//...
break;
case MOVE_DOWN:
//...
break;
case MOVE_LEFT:
//...
break;
default:
/* DO NOTHING */;
}