zoukankan      html  css  js  c++  java
  • switch结构

    switch结构介绍

    • switch也属于条件判断的语句

    • 支持多种写法,和if .. else if ...else 结构的功能类似,但是里面的细节需要注意的地方更多

    • switch基本语法

    switch [定义变量;] [变量]{
      case [条件/具体值]:
          //代码
      case [条件/具体值]:
          //代码
      default:
        //代码
    }
    • switch每个case分支默认只执行一个且是从上向下执行

    • default上下位置没有影响,当且仅当所有case都不成立时才执行default

    switch用法(一)

    • 当变量只有固定的几个值时可以使用switch结构

    func main() {
        num := 16
        switch num {
        case 2:
            fmt.Println("2进制")
        case 8:
            fmt.Println("8进制")
        case 10:
            fmt.Println("10进制")
        case 16:
            fmt.Println("16进制")
        default:
            fmt.Println("内容不正确")
        }
        fmt.Println("程序结束")
    }
    • switch也支持在条件位置定义变量,变量有效范围为当前switch
    func main() {
        switch num := 16; num {
        case 2:
            fmt.Println("2进制")
        case 8:
            fmt.Println("8进制")
        case 10:
            fmt.Println("10进制")
        case 16:
            fmt.Println("16进制")
        default:
            fmt.Println("内容不正确")
        }
        fmt.Println("程序结束")
    }

    switch用法(二)

    • 当条件是范围而不是固定值时

    func main() {
        score := 71
        switch {
        case score >= 90:
            fmt.Println("优秀")
        case score >= 80:
            fmt.Println("良好")
        case score >= 70:
            fmt.Println("中等")
        case score >= 60:
            fmt.Println("及格")
        default:
            fmt.Println("不及格")
        }
        fmt.Println("程序结束")
    }

    switch用法(三)

    • case条件支持多个值,每个值使用逗号分开

    func main() {
        month := 5
        switch month {
        case 1, 3, 5, 7, 8, 10, 12:
            fmt.Println("31天")
        case 2:
            fmt.Println("28或29天")
        default:
            fmt.Println("30天")
        }
        fmt.Println("程序结束")
    }

    穿透和中断

    • switch结构中某个最多只能执行一个case,使用fallthrough可以让下一个case/default继续执行

    func main() {
        switch num := 1; num {
        case 1:
            fmt.Println("1")
            fallthrough
        case 2:
            fmt.Println("2")
        case 3:
            fmt.Println("3")
            fallthrough
        case 4:
            fmt.Println("4")
        default:
            fmt.Println("不是1,2,3,4")
        }
        fmt.Println("程序结束")
    }
    • break可以用在switch和循环中,表示立即结束,无论当前结构后面还有多少代码
    func main() {
        switch num := 1; num {
        case 1:
            fmt.Println("1")
            break
            fmt.Println("break后面代码都不执行")
            fallthrough
        case 2:
            fmt.Println("2")
        case 3:
            fmt.Println("3")
            fallthrough
        case 4:
            fmt.Println("4")
        default:
            fmt.Println("不是1,2,3,4")
        }
        fmt.Println("程序结束")
    }
  • 相关阅读:
    第二月 day 2,内置函数
    第二月 day3 闭包,递归
    day4 装饰器
    第二月 day1生成器
    第一个月 总结
    day 16 迭代器
    day 15 编码
    Docker常用命令
    DRF源码刨析
    django中使用qiniu作为第三方存储
  • 原文地址:https://www.cnblogs.com/miaoweiye/p/12088382.html
Copyright © 2011-2022 走看看