zoukankan      html  css  js  c++  java
  • C语言 switch default的位置

    switch中的default,一般用在最后,表示非以上的任何情况下而发生的情况,我们一般习惯在他的后面加上个break。但是,如果default不是在最后,而是在前面或中间会发生什么情况呢:

    先看看default在句首的情况:
    int i = 2;
    switch (i) {
      default:
       System.out.println("default");
      case 0:
       System.out.println("0");
      case 1:
       System.out.println("1");
      case 2:
       System.out.println("2");
        break;
      case 3:
       System.out.println("3");
      case 4:
       System.out.println("4");
        break;
    }
    他的输出结果是:2! 很明显,不是先执行的default语句!
    再看看下面语句:
    int i = 8;
    switch (i) {
      default:
       System.out.println("default");
      case 0:
       System.out.println("0");
      case 1:
       System.out.println("1");
      case 2:
       System.out.println("2");
        break;
      case 3:
       System.out.println("3");
      case 4:
       System.out.println("4");
        break;
    }
    他的输出结果是:
    default
    0
    1
    2
    出人意料!!从default开始向后执行!
    再看看default在句中的情况:
    int i = 2;
    switch (i) {
      case 0:
       System.out.println("0");
      case 1:
       System.out.println("1");
        break;
      default:
       System.out.println("default");
      case 2:
       System.out.println("2");
        break;
      case 3:
       System.out.println("3");
      case 4:
       System.out.println("4");
        break;
    }
    结果是2!显然还是没执行default!
    int i = 8;
    switch (i) {
      case 0:
       System.out.println("0");
      case 1:
       System.out.println("1");
        break;
      default:
       System.out.println("default");
      case 2:
       System.out.println("2");
        break;
      case 3:
       System.out.println("3");
      case 4:
       System.out.println("4");
        break;
    }
    结果:
    default
    2
    显然是从default开始向后执行的!

    从上面可以看出:
    switch default 之前的case按顺序执行(首先确定是否命中case,命中case,从命中case开始执行),最后执行default,如果default 没有break,继续执行default之后语句,直到跳出switch

  • 相关阅读:
    ubuntu安装后做得几件事情 【robby_chan】
    malloc函数的一种简单的原理性实现[转]
    了解B树 B+树
    win下格式转为utf8 编码 转码
    log4j2与slf4j日志桥接
    java获取当前行数
    java获取服务器ip地址解决linux上为127.0.0.1的问题
    log4j2的基本使用
    navicator使用之mysql
    log4j与log4j2日志文件的操作
  • 原文地址:https://www.cnblogs.com/loongqiang/p/3555349.html
Copyright © 2011-2022 走看看