皆さん、
最近 C を学び始め
ました。switch-case ステートメントの動作についてです。
コードは次のとおりです。
#include<stdio.h>
int main() {
int i=4;
switch(i) {
default :
printf("%s","Default");
case 0:
printf("%s","Case 0");
case 1:
printf("%s","Case 1");
case 2:
printf("%s","Case 2");
return 0;
}
}
Default
個人的には、大文字と小文字の値のいずれとも一致しないため、「 」を出力する必要があると思います。
しかし、Turbo C でコードを実行すると、次のことがわかりました。
Default
Case 0
Case 1
Case 2
ここでも同じことが観察されました:http://www.ideone.com/pFh1d
何が問題ですか ?それはコンパイラの問題ですか、それとも私のコードの間違いですか?
編集 :
PS:デフォルトのケースを最初に書かなければならない場合、それはどのような問題を引き起こしますか。害はありますか?
しかし、コンパイラが default ステートメントを実行する必要があることを認識したら、なぜ default ケースのステートメントの後に break ステートメントを配置する必要があるのでしょうか?