zoukankan      html  css  js  c++  java
  • go之switch

    switch 条件语句一

    • 格式
    switch initialization{
        case v1:
        //  do something
        case v2:
        // do something
        case v2:
        // do something
        default:
        // do something
    }
    
    • 实例
    package main
    
    import "fmt"
    
    var num = 12
    func main(){
    	switch num {
    	case 1:
    		fmt.Println("num is 1")
    	case 2:
    		fmt.Println("num is 2")
    	case 3:
    		fmt.Println("num is 3")
    	default:
    		fmt.Println("num is default")
    	}
    }
    
    

    输出 num is default

    switch 条件语句二

    • 格式
        switch {
        case condition1:
            // do somthing
        case condition2:
            // do something
        case condition3:
            // do something
        default:
            // do something
        }
    
    • 实例
    package main
    
    import "fmt"
    
    var (
    	num1 int = 3
    	num2 = 5
    )
    func main(){
    	switch  {
    	case num1 > num2:
    		fmt.Println("num1 大于 num2")
    	case num1 < num2:
    		fmt.Println("num1 小于 num2")
    	default:
    		fmt.Println("num1 == num2")
    	}
    
    	switch s := sum(num1,num2); {
    	case s < 10:
    		fmt.Println("num1 + num2 的和小于 10")
    	case s > 10:
    		fmt.Println("num1 + num2 的和 大于 10")
    	default:
    		fmt.Println("num1 + num2 的和 等于 10")
    	}
    }
    
    
    // 求和 返回 s
    func sum(num1 int,num2 int)(s int){
    	s = num1 + num1
    	return
    }
    
    
    num1 小于 num2
    num1 + num2 的和小于 10
    

    fallthrough

    • fallthrouth 的由来
        在其他类型的语言,如php,switch 语句每一个case 结尾都应该加上一句break; 已表面该结束switch,防止继续往下一个case 执行。但是在go 语言中
        是不需要加 break 的,因为每一个case 结束go编辑器都默认添加了break;
    
        php 语言
        switch ($num){
        case 1:
            // do something
            break;
        case 2:
            // do something
            break;
        default:
            // do something
        }
    
        go 语言
        switch num {
        case 1:
            // do something
        case 2:
            // do something
        default:
            // do soment
        }
    
    
        // 因为go 编辑器自动添加了break;导致了程序不会跳到下一个case执行,所以go 给我们提供了一个关键字 fallthrough,可以在执行case 之后继续下一个case执行
    
    • 实例
    package main
    
    import "fmt"
    
    func main(){
    	Season(1) // 第一季
    	Season(3) // 第一季
    	Season(5) // 第二季
    	Season(6) // 第二季
    	Season(9) // 第三季
    	Season(11) // 第四季
    	Season(12) // 第四季
    }
    
    // 输入月份写季节
    func Season(month int) {
    	switch month {
    	case 1:
    		fallthrough
    	case 2:
    		fallthrough
    	case 3:
    		fmt.Println("第一季")
    	case 4,5,6: // go 中允许多val语句的写法,实际上和加了fallthrough 效果一样
    		fmt.Println("第二季")
    	case 7,8,9:
    		fmt.Println("第三季")
    	case 10:
    		fallthrough
    	case 11:
    		fallthrough
    	case 12:
    		fmt.Println("第四季")
    	}
    }
    
  • 相关阅读:
    别忘了调用Page.IsValid
    在网站更新时使用App_Offline.htm
    转:零命令玩转Ubuntu 8.10(Wubi安装图文教程)
    转:画Web流程图的一点心得
    c#点对点聊天程序示例
    c#dns解析示例
    c++输出n以内素数问题(埃拉托色尼筛法)
    c#简单字符操作
    C++简单邮箱问题
    c#广播示例
  • 原文地址:https://www.cnblogs.com/xiaobaiskill/p/10591089.html
Copyright © 2011-2022 走看看