Go語言基礎switch條件語句基本用法及示例詳解

在這裡插入圖片描述

概述

  • 傳入條件的不同,會執行不同的語句
  • 每一個case分支都是唯一的,從上到下逐一測試,直到匹配為止。

語法

第一種【switch 帶上表達式】

switch 表達式 {
  case 表達式1,表達式2, ... :
     語句塊1
  case 表達式3, 表達式4, ... :
     語名塊2
  default:
     語句塊
}

第二種【switch 不帶表達式】

switch {
  case 表達式1,表達式2, ... :
     語句塊1
  case 表達式3, 表達式4, ... :
     語名塊2
  default:
     語句塊
}

第三種【switch 初始化,表達式】

switch 初始化;表達式{
  case 表達式1,表達式2, ... :
     語句塊1
  case 表達式3, 表達式4, ... :
     語名塊2
  default:
     語句塊
}

註意

  1. 各個case默認break
  2. 不break加 fallthrough
  3. panic 報錯
  4. switch後可以沒有表達式
  5. switch支持初始化語句,註意要用分號結束
  6. case後面的值是唯一的

示例一【根據今天的日期打印今天星期幾】

func printWeekday() {
	day := time.Now().Weekday()   //需要導入time
	fmt.Printf("%s", "今天")
	switch int(day) {
	case 1:
		fmt.Println("星期一")
	case 2:
		fmt.Println("星期二")
	case 3:
		fmt.Println("星期三")
	case 4:
		fmt.Println("星期四")
	case 5:
		fmt.Println("星期五")
	case 6, 7:
		fmt.Println("星期天")
	}

}

示例二【根據分數打印A,B,C,D】

func printScores() {
	fmt.Println()
	fmt.Println("根據分數打印A,B,C,D")
	scores := 0
	fmt.Println("請輸入分數")
	fmt.Scanf("%d", &scores)
	fmt.Printf("分數等級:")
	switch {
	case scores > 90:
		fmt.Println("A")
	case scores > 80, scores > 70:
		fmt.Println("B")
	case scores > 60:
		fmt.Println("c")
	case scores >= 10:
		fmt.Println("D")
	default:
		fmt.Println("你有分數嗎")
	}
}

示例三【算數】

func printEval() {
	fmt.Println()
	fmt.Println("三、算數")
	var num1, num2 int
	fmt.Println("請輸入第一個數:")
	fmt.Scan(&num1)
	fmt.Println("請輸入第二個數:")
	fmt.Scan(&num2)
	var op string
	fmt.Println("請輸入符號[+ - * /] ")
	fmt.Scan(&op)
	fmt.Printf("%d%s%d=%d", num1,op, num2, eval(num1, num2, op))
}
func eval(a, b int, op string) int {
	var result int
	switch op {
	case "+":
		result = a + b
	case "-":
		result = a - b
	case "*":
		result = a * b
	case "/":
		result = a / b
	default:
		panic("unsupported operator:" + op)
	}
	return result
}

以上就是Go語言基礎switch條件語句基本用法及示例詳解的詳細內容,更多關於Go語言條件語句的資料請關註WalkonNet其它相關文章!

推薦閱讀: