• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

go之switch

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go语言中异常处理painc()和recover()的用法发布时间:2022-07-10
下一篇:
Go语言程序的状态监控发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap