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("第四季")
    }
}

转载于:https://www.cnblogs.com/xiaobaiskill/p/10591089.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值