美文网首页
switch语句中又爱又恨的default

switch语句中又爱又恨的default

作者: Fcc的简书 | 来源:发表于2017-10-21 23:38 被阅读0次

在编写代码的过程中,经常会遇到令人头疼的问题,看似简单,其实陷阱很大。这里一下switch语句中的default分支问题。

常识

按照一般的编程规范,都是要求加上default分支的,它可以防止我们因为对分支情况的考虑不周全,而出现难以预测的情况。同时,每个分支也要求加上break。
而在有些问题当中,往往就不加break,此时,就会遇到default分支放哪儿的问题。
这个是比较基础的问题,一般就是三种:

  1. default放在分支最前面
  2. default放在case的中间
  3. default放在分支最后面

我们还知道,如果不加上break语句,则会顺序执行匹配到的分支及以下的分支。

问题

看起来好像就这么多规律,可实际实验中,我还发现了一些问题。总结起来,即:

default语句只会在任何分支都匹配不到情况下执行。
一旦有匹配到的分支,则default语句不论放在哪儿,都不会执行。

下面给出一例代码进行说明

int main(){
    int x = 2;
    switch(x){
        default: 
            printf("default\n");
        case 2:
            printf("2\n");
    }
    return 0;
}

由上面可以看出

  1. 当x=1时,没有case语句匹配,则default分支执行。
    由于没有break,则下面的case也跟着执行。执行结果为:
    default
    2

  2. 当x=2时,有case语句匹配,则default分支不再执行。执行结果为:
    2

好多人在说switch语句的时候,只会说没有break语句,就会顺序往下执行。
最容易忽略的是,default分支不论放在哪儿,都只会在没有case分支匹配的情况下,才会执行。
实际工作中,要求是default分支要有,而且要有一些实际的处理操作,防止一些预料不到的情况。而且要求写在最下面,这样最安全,且看起来代码最清晰。

相关文章

  • switch语句中又爱又恨的default

    在编写代码的过程中,经常会遇到令人头疼的问题,看似简单,其实陷阱很大。这里一下switch语句中的default分...

  • Swift Switch 语句

    前言 Swift switch 语句中,默认语法是必须要添加 default 语句。 Swift Switch 语...

  • 【C语言】4.打印三角形和一些小知识

    switch语句中的default一般放在最后,break可写可不写,因为即使不写,default语句执行完swi...

  • 4.default的含义

    1.default是缺省默认的意思,default在switch语句中不管放在哪都是从第一个case开始执行,当所...

  • 又爱又恨

    没法释怀对这个人的恨 也没法稀释对这个人的爱

  • 又爱又恨

    2017年11月24日 星期五 今天一如既往的送孩子上学后,回来听了听父母归。后又在腾讯新闻上看了一...

  • 又爱又恨

    从十指相扣,到热烈激吻,再到十指相扣!相信每个人都会有这样得过程!也许当初的勇气来自于意气,可是到最后你还是...

  • 又爱又恨

    高中的一个男同学兼好朋友 我们无论做什么都腻在一起 上学放学吃饭上厕所上课什么的 就算成绩也几乎同步 同年级的都以...

  • 又爱又恨

    还记得么?曾经的阳光、雨滴?曾经的欢笑、泪水?如果没有忘记。如果还在想念。如果对青春的时光还念念不忘。对爱情、友情...

  • 又爱又恨

    我觉得最可怕的事情就是一个人看不到别人在相处的时候付出的,也看不到自己所拥有的,说起来可能很夸张,但很多人就是这样...

网友评论

      本文标题:switch语句中又爱又恨的default

      本文链接:https://www.haomeiwen.com/subject/lfvwuxtx.html