• 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

  • 相关阅读:
    2017-5-15 winform项目总结(知识点补充)
    2017-5-7 time控件 三级联动(省,市,区)
    2017-5-4 进程 线程 用户控件
    2017-5-3 打印控件 MDI 窗体容器 Activated事件
    2017-5-2 对话框控件 MessageBox.Show()用法补充 打开新窗体的3中模式
    窗体移动 窗体阴影API
    2017-4-28 ListView控件学习
    【2017-03-28】JS基础、DOM操作
    【2017-03-24】样式表样式
    【2017-03-24】CSS样式表
  • 原文地址:https://www.cnblogs.com/loongqiang/p/3555349.html
Copyright © 2020-2023  润新知