关于switch的范围写法

因为常量值后面的若干语句中没有break,则接着运行下一个常量值(case  3)后面的若干语句,直到遇到break为止
#include<stdio.h>
int main(){
    int a,t;
    scanf("%d",&a);
    switch(a/100000){
        case 0:
            t=a*0.1;
            break;
        case 1:
            t=100000*0.1+(a-100000)*0.075;
            break;
        case 2:
        case 3:
            t=100000*0.1+100000*0.075+(a-200000)*0.05;
            break;
        case 4:
        case 5:
            t=100000*0.1+100000*0.075+200000*0.05+(a-400000)*0.03;
        case 6:
        case 7:
        case 8:
        case 9:
            t=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(a-600000)*0.015;
        default:
            t=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(a-1000000)*0.01;
    }
    printf("%d",t);
    return 0;
}

ps:当a/100000=2时,因为常量值后面的若干语句中没有break,则接着运行下一个常量值(case 3)后面的若干语句,直到遇到break为止

同理,后面的4,6,7,8都是一样的

程序结束return 0;不可省。

猜你喜欢

转载自blog.csdn.net/weixin_44266105/article/details/86134049
今日推荐