zoukankan      html  css  js  c++  java
  • C语言之switch

    一 switch的语法

                

    switch(表达式){

     

     case 常量表达式1:

       代码块1

     break;

     

     case 常量表达式2:

        代码块2

     break;

     

     case 常量表达式3:

        代码块3

     break;

     

     .......

     

     default:

       代码块n;

     break;

     }

     

     语义:根据表达式的结果,直接跳转到与之对应的常量表达式1的代码块里去执行,如果常量表达式都没有与它对应的值,那么就会跳转到default语句里面执行代码块n

    二 switch的注意事项

    1.千万不要在小括号后面加;,否则可能引起报错

     2.switch小括号里面的表达式的结果只能为整数,字符可以,因为字符本质上是整数

     3.case后面的常量表达式,只能放常量,不能放变量

     4.只要是常量的表达式都可以(所以case后面可以写常量运算式)

     5.case后面的常量表达式的结果不允许有相同的

     6.default位置可以写在任意位置

     7.default可以省略

     8.break可以省略,因为break关键字的作用:结束当前所在的switch语句

     9.一般情况下,记得不要省略每个case后面的break;

    tips:代码例子如下

        #include <stdio.h>

     

    int main(int argc, const char * argv[]) {

       

        //千万不要在小括号后面加;

        /*

         //int num = 3;

         //    switch (num); {    //会报错

         //

         //        case 1:

         //            break;

         //        case 2:

         //            break;

         //        case 3:

         //            break;

         //        default:

         //            break;

         //    }

         */

        //switch小括号里面的表达式的结果只能为整数

        /*

         float f = 10.3f;

         char ch = 'a';

         switch (f) { //会报错

         case 1:

         break;

         default:

         break;

         }

         */

        //char可以

        /*

         char ch = 'a';

    switch (ch) {

     

         case 'a':

         break;

         case 'b':

         break;

         default:

         break;

         }

         */

       

        //case后面的常量表达式,只能放常量,不能放变量

        /*

         int num1 = 1,num2=2,num3=3;

         switch (1) {

         case num1:           //报错

         break;

         default:

         break;

         }

         */

       

        //只要是常量的表达式都可以

        /*

         switch (1) {

        

         case 1+1;

         break;

         case 2-1:

         break;

         default:

         break;

         }

         */

       

        //case后面的常量表达式的结果不允许有相同的

        /*

    switch (1) {

     

         case 1:

         break;

         case 2:

         break;

         case 3:

         break;

         case 3-2: //报错

         break;

         default:

         break;

         }

         */

       

        //是直接跳转到与之对应的case块

        /*

         int num = 2;

         switch (num) {

        

         case 1:

         printf("1 ");

         break;

         case 4:

         printf("4 ");

         break;

         case 5:

         printf("5 ");

         break;

         case 2:

         printf("2 ");

         break;

         default:

         break;

         }

         */

       

        //因为break关键字的作用:结束当前所在的switch语句

        /*

         int num = 2;

         switch (num) {

        

         case 1:

         printf("1 ");

         break;

         case 2: //会从这里开始一直往下直到执行完毕

         printf("2 ");

         case 3:

         printf("3 ");

         default:

         printf("ddddd ");

         }

         */

       

        return 0;

    }

    不忘初心,方得始终
  • 相关阅读:
    asp.net控件开发基础(转)
    如何在C#中直接操作C++结构体(转)
    如何打造自己的代码段
    WeifenLuo.WinFormsUI.Docking.dll 源码分析(一)
    软件竞标流程与要点【转】
    C#进制转换
    使用 DpaToolkit 对 C#类库进行反向建模
    算法的时间复杂度(计算实例)
    C#操作SQLServer的Image字段
    不同进制之间的转换
  • 原文地址:https://www.cnblogs.com/jialiangliang/p/5998323.html
Copyright © 2011-2022 走看看