44_Go基础_1_11 switch

  1 package main
  2 
  3 import "fmt"
  4 
  5 func main() {
  6     /*
  7         1.switch的标注写法:
  8         switch 变量{
  9         case 数值1:分支1
 10         case 数值2:分支2
 11         。。。
 12         default:
 13             最后一个分支
 14         }
 15         2.省略switch后的变量,相当于直接作用在true上
 16         switch{//true
 17         case true:
 18         case false:
 19         }
 20 
 21         3.case后可以同时跟随多个数值
 22         switch 变量{
 23         case 数值1,数值2,数值3:
 24 
 25         case 数值4,数值5:
 26 
 27         }
 28 
 29         4.switch后可以多一条初始化语句
 30         switch 初始化语句;变量{
 31         }
 32     */
 33     switch {
 34     case true:
 35         fmt.Println("true..")
 36     case false:
 37         fmt.Println("false...")
 38     }
 39     /*
 40         成绩:
 41         [0-59],不及格
 42         [60,69],及格
 43         [70,79],中
 44         [80,89],良好
 45         [90,100],优秀
 46     */
 47     score := 88
 48     switch {
 49     case score >= 0 && score < 60:
 50         fmt.Println(score, "不及格")
 51     case score >= 60 && score < 70:
 52         fmt.Println(score, "及格")
 53     case score >= 70 && score < 80:
 54         fmt.Println(score, "中等")
 55     case score >= 80 && score < 90:
 56         fmt.Println(score, "良好")
 57     case score >= 90 && score <= 100:
 58         fmt.Println(score, "优秀")
 59     default:
 60         fmt.Println("成绩有误。。。")
 61 
 62     }
 63 
 64     fmt.Println("---------------------")
 65     letter := ""
 66     switch letter {
 67     case "A", "E", "I", "O", "U":
 68         fmt.Println(letter, "是元音。。")
 69     case "M", "N":
 70         fmt.Println("M或N。。")
 71     default:
 72         fmt.Println("其他。。")
 73     }
 74     /*
 75         一个月的天数
 76         1,3,5,7,8,10,12
 77             31
 78         4,6,9,11
 79             30
 80         2:29/28
 81     */
 82     month := 9
 83     day := 0
 84     year := 2019
 85     switch month {
 86     case 1, 3, 5, 7, 8, 10, 12:
 87         day = 31
 88 
 89     case 4, 6, 9, 11:
 90         day = 30
 91     case 2:
 92         if year%400 == 0 || year%4 == 0 && year%100 != 0 {
 93             day = 29
 94         } else {
 95             day = 28
 96         }
 97     default:
 98         fmt.Println("月份有误。。")
 99     }
100     fmt.Printf("%d 年 %d 月 的天数是:%d\n", year, month, day)
101     fmt.Println("--------------------------")
102 
103     switch language := "golang"; language {
104     case "golang":
105         fmt.Println("Go语言。。")
106     case "java":
107         fmt.Println("Java语言。。")
108     case "python":
109         fmt.Println("Python语言。。")
110     }
111     //fmt.Println(language) //undefined: language
112 }