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