Golang的选择结构-switch语句

          Golang的选择结构-switch语句

                             作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

一.选择语句应用场景概述

  选择结构也称为条件判断,生活中关于判断的场景也非常的多,比如:
    (1)登录QQ,微信类似的社交软件需要输入用户名和密码进行验证;
    (2)2020年在疫情期间,想要进入小区或者公司办公楼得持有出入证方可进入;
    (3)远程操作服务器必须得有远程管理的用户且远程管理服务可以被访问;
    (4)去欢乐谷玩,坐火车,乘飞机都是需要检票通过才能进站;
    (5)去银行取款必须输入你自己的账号密码才能进行取款,查询等操作;
    ......
    
  生活中用于条件判断的情况还是很多的,在Go语言中有两种实现条件判断的语句,分别为if语句和switch语句。

  本篇博客主要讲解switch语句的使用,if语句的使用可参考我的另一篇笔记:
    https://www.cnblogs.com/yinzhengjie2020/p/12292898.html

 

二.switch语句实战案例

package main

import (
    "fmt"
)

func main() {

    /*
        switch语法格式如下:

            switch 变量或者表达式的值{
                case 值1:
                    //代码块1
                case 值2:
                    //代码块2
                    //fallthrough
                case 值3:
                    //代码块3
                default:
                    //代码块4
                }

        执行流程:
            程序执行到switch处,首先将变量或者表达式的值计算出来,然后拿着这个值依次跟每个case后面所带的值进行匹配,一旦匹配成功,则执行该case所对应的代码,执行完成后,跳出switch-case结构。
            如果,跟每个case所带的值都不匹配。就看当前这个switch-case结构中是否存在default,如果有default,则执行default中的语句,如果没有default,则该switch-case结构什么都不做。

        温馨提示:
            (1)某个case后面跟着的代码执行完毕后,不会再执行后面的case,而是跳出整个switch结构, 相当于每个case后面都跟着break(终止)。
            (2)如果想执行完成某个case后,强制执行后面的case,可以使用fallthrough;
            (3)尽量减少float类型作为case分支,因为浮点数精度问题在switch语句中可能会体现出来,比如"3.14"和"3.140000000001"在swich语句中可能会认为是同一个值
    */

    var (
        month int
        days  int
    )

    fmt.Print("请输入您想要查询的月份对应的天数:>>> ")
    fmt.Scan(&month)

    switch month {
    //如果有多个值都执行同一块代码体,可以将多个值以逗号分割
    case 1, 3, 5, 7, 8, 10, 12:
        days = 31
    case 4, 6, 9, 11:
        days = 30
    case 2:
        days = 28
    default:
        fmt.Println("请您输入有效的月份[1-12]")
    }

    fmt.Printf("您输入的月份是[%d],该月有[%d]天\n", month, days)
}

 

posted @ 2020-02-10 23:29  JasonYin2020  阅读(263)  评论(0编辑  收藏  举报