特殊なケースが検出された場合にメイン関数から早期に戻るために、switch ステートメントを使用しています。特殊なケースは、以下に示すように列挙型を使用してエンコードされます。
typedef enum {
NEG_INF,
ZERO,
POS_INF,
NOT_SPECIAL
} extrema;
int main(){
// ...
extrema check = POS_INF;
switch(check){
NEG_INF: printf("neg inf"); return 1;
ZERO: printf("zero"); return 2;
POS_INF: printf("pos inf"); return 3;
default: printf("not special"); break;
}
// ...
return 0;
}
奇妙なことに、これを実行すると、文字列not special
がコンソールに出力され、メイン関数の残りの部分が実行されます。
ここで switch ステートメントを適切に機能させるにはどうすればよいですか? ありがとう!