zoukankan      html  css  js  c++  java
  • go语言选择语句 switch case

    根据传入条件的不同,选择语句会执行不同的语句。下面的例子根据传入的整型变量i的不同而打印不同的内容:

    switch i { 
        case 0: 
            fmt.Printf("0") 
        case 1: 
            fmt.Printf("1") 
        case 2: 
            fallthrough 
        case 3: 
            fmt.Printf("3") 
        case 4, 5, 6: 
            fmt.Printf("4, 5, 6") 
        default: 
            fmt.Printf("Default") 
    } 
    

    运行上面的案例,将会得到如下结果:
     i = 0时,输出0;
     i = 1时,输出1;
     i = 2时,输出3;

     i = 3时,输出3; 

     i = 4时,输出4, 5, 6;
     i = 5时,输出4, 5, 6;
     i = 6时,输出4, 5, 6;
     i = 其他任意值时,输出Default。

    比较有意思的是,switch后面的表达式甚至不是必需的,比如下面的例子: 

    switch { 
        case 0 <= Num && Num <= 3: 
            fmt.Printf("0-3") 
        case 4 <= Num && Num <= 6: 
            fmt.Printf("4-6") 
        case 7 <= Num && Num <= 9: 
            fmt.Printf("7-9") //http://www.cnblogs.com/osfipin/
    }  
    

    在使用switch结构时,我们需要注意以下几点:
     左花括号{必须与switch处于同一行;
     条件表达式不限制为常量或者整数;
     单个case中,可以出现多个结果选项;
     与C语言等规则相反,Go语言不需要用break来明确退出一个case;
     只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case;
     可以不设定switch之后的条件表达式,在此种情况下,整个switch结构与多个if...else...的逻辑作用等同。

  • 相关阅读:
    泛型
    事件和委托
    参数和属性
    常量、字段、和方法
    LINQ
    LINQ- 子查询、组合策略、投影策略
    MySQL全局锁和表锁
    CLR基础
    LINQ
    LINQ
  • 原文地址:https://www.cnblogs.com/osfipin/p/4682591.html
Copyright © 2011-2022 走看看