zoukankan      html  css  js  c++  java
  • 20180530

    (1)若有以下程序

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include<stdio.h>
    main()
        int s=0,n;
        for(n=0; n<4; n++)
        {
            switch(n)
            {
               default:s+=4;
               case 1:s+=1;
               case 2:s+=2;
               case 3:s+=3;
            }
        }
        printf ("%d ",s);
    }

    则程序的输出结果是?

    6
    18
    10
    24

    答案:D 错选:A
    在switch-case语句中,多个case可以共用一条执行语句,如: 
    case 常量表达式1: 
    case 常量表达式2: 
    case 常量表达式3: 
    语句; 
    break; 
    由此可以看出case语句的作用:
    case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即“只是开始执行处的入口标号”。

    因此,一旦与switch后面圆括号中表达式的值匹配,就从此标号处开始执行;
    而且执行完一个case后面的语句后,若没遇到break语句,就自动进入下一个case继续执行,而不再判断是否与之匹配,直到遇到break语句才停止执行,退出switch语句。

    因此,若想执行一个case分之后立即跳出switch语句,就必须在此分支的最后添加一个break语句。

    第1次:s=0+4+1+2+3=10;
    第2次:s=10+1+2+3=16;
    第3次:s=16+2+3=21;
    第4次:s=21+3=24.
  • 相关阅读:
    LeetCode——面试题57
    翻译——5_Summary, Conclusion and Discussion
    LeetCode——114. 二叉树展开为链表
    LeetCode——1103. 分糖果 II
    LeetCode——337. 打家劫舍 III
    LeetCode——994. 腐烂的橘子
    Python——潜在会员用户预测
    Vue中div高度自适应
    webpack中使用vue-resource
    Mint UI组件库 和 Mui
  • 原文地址:https://www.cnblogs.com/kxzh/p/9128627.html
Copyright © 2011-2022 走看看