首页 > 编程知识 正文

C语言中switch用法,c语言switch语句用法例子

时间:2023-05-04 15:33:32 阅读:270538 作者:1803

关于C语言中我们做判断的时候一般是会想到if else,常见的if else的写法为:
if(表达书)
{}
else if(表表达式)
{}
else
{}
当出现更多的if else嵌套的时候通常会使我们的代码变的较为繁琐,使得我们在观看自己的代码的时候容易讲逻辑给混淆,故此次介绍一下switch的用法,switch的用法在代码中的运用广度没有if else 较强,但是在多个判断中可起到很关键的作用本次以leet第860题柠檬水找零为例子进行说明,下面两段代码:

bool lemonadeChange(int* bills, int billsSize){ int mon[2]={0}; for(int i=0;i<billsSize;i++) { switch(bills[i]) { case 5:{mon[0]++;break;}; case 10: { mon[0]--; mon[1]++; break; } case 20: { if(mon[1]>0) { mon[1]--; mon[0]--; } else mon[0]-=3; break; } } if(mon[0]<0) return false; } return true;} bool lemonadeChange(int* bills, int billsSize){ int mon[2]={0}; for(int i=0;i<billsSize;i++) { int temp=bills[i]-5; if(temp>0) { if(temp>5) { if(mon[1]!=0&&mon[0]!=0) { mon[0]--; mon[1]--; } else if(mon[0]>=3) mon[0]-=3; else return false; } else { if(mon[0]>0) { mon[1]++; mon[0]--; } else return false; } } else mon[0]++; } return true; }

上述两段代码分别为使用if else 与switch的代码的实例,两者在运行内存和速度上相差无几,但是switch的看起来更整洁,逻辑清晰。
注意:
1、在switch中有一点需要明确那就是在break的引用的问题,switch的操作中首先将case后的表达式与switch中括号的内容进行匹配,如果两者相等,则执行该case及下面的所有代码,知道执行完毕switch中的所有代码,而我们引用switch的目的只是需要执行其中的一个case,然后跳出switch,故在每个case的末尾需加入break将此次的switch跳出,若利用continue跳出case,依然会执行下面的case。
2、case 后面必须是一个整数,或者是结果为整数的表达式,但不能包含任何变量。
eg:
case ‘A’: printf("…"); break; //正确,字符和整数可以相互转换。
case a: printf("…"); break; //错误,不能包含变量
3、default 不是必须的。当没有 default 时,如果所有 case 都匹配失败,那么就什么都不执行。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。