在switch语句中使用枚举类型

前端之家收集整理的这篇文章主要介绍了在switch语句中使用枚举类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果检测到一些特殊情况,我正在使用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;

}

奇怪的是,当我运行这个,不特殊的字符串被打印到控制台,主要功能的其余部分继续执行.

如何使switch语句在这里正常运行?谢谢!

解决方法

无案件标签.你现在有goto标签尝试:
switch(check){
    case NEG_INF: printf("neg inf"); return 1;
    case ZERO: printf("zero"); return 2;
    case POS_INF: printf("pos inf"); return 3;
    default: printf("not special"); break;
}

猜你在找的C&C++相关文章