switch で使う defaultは、つづりを間違えてもコンパイル・エラーになりません。
たとえば default を defualt と書き間違えても、そういう名前のラベルと解釈されます。
気づきにくい間違いになりやすいので注意しましょう。
下のクイズがその例です。
下記は映画館のプログラムで、スクリーン番号を指定すると上映中の映画名が表示されます。
#include <stdio.h>
main()
{
int screen;
screen = 4; //スクリーン番号4で上映中の映画を教えて?
switch( screen ) {
case 1 : printf( "ワンピースです\n" ); break;
case 2 : printf( "ファイト・クラブです\n" ); break;
case 3 : printf( "ゴッドファーザーです\n" ); break;
case 4 : printf( "ミッション・インポッシブルです\n" ); break;
default: printf( "番号(1〜4)をご指定ください\n" ); break;
}
}
これを実行すると「ミッション・インポッシブルです」と表示されますね。 |
では次に、default のつづりを間違え、screen に 5 が指定された場合です。
#include <stdio.h> main() { int screen; screen = 5; //スクリーン番号5で上映中の映画を教えて? switch( screen ) { case 1 : printf( "ワンピースです\n" ); break; case 2 : printf( "ファイト・クラブです\n" ); break; case 3 : printf( "ゴッドファーザーです\n" ); break; case 4 : printf( "ミッション・インポッシブルです\n" ); break; defualt: printf( "番号(1〜4)をご指定ください\n" ); break; } }こちらのプログラムを実行すると、どんな結果になるでしょうか? 考えてみましょう。 (答えは、次回のC言語の Tips で ・・・) |