switch使用細節2

package main

import “fmt”

func main(){
//(7)switch后也可以不帶表達式,類似多個if-else分支來使用。【案例演示】
//(8)switch后也可以直接聲明/定義一個變量,分號結束,不推薦。(案例演示)
//(9)switch穿透-fallthrough,如果在case語句塊后增加fallthorough,則會繼續執行下一個case,也叫switch穿透。
//switch 后也可以不帶表達式,類似if --else分支來使用。【案例演示】
var age int = 10

switch {
case age == 10:
	fmt.Println("age == 10")
case age ==20:
	fmt.Println("age == 20")
default:
	fmt.Println("沒有匹配到")
}
//case 中也可以對age 範圍進行判斷
var score int =30
switch {
case score > 90:
	fmt.Println("成績優異..")
case score >=70 && score <= 90:
	fmt.Println("成績優良...")
case score >=60 && score <= 70:
	fmt.Println("成績及格...")
default:
	fmt.Println("不及格")
}

//switch后也可以直接聲明/定義一個變量,分號結束,不推薦。
switch grade :=90; {
case grade > 90:
	fmt.Println("成績優異~..")
case grade >=70 && grade <= 90:
	fmt.Println("成績優良~...")
case grade >=60 && grade <= 70:
	fmt.Println("成績及格~...")
default:
	fmt.Println("不及格~")
}

//switch穿透-fallthrough,如果在case語句塊后增加fallthorough,則會繼續執行下一個case,也叫switch穿透。
var num int = 10
switch num {
case 10:
	fmt.Println("ok1")
    fallthrough//默認只能穿透一層
case 20:
	fmt.Println("ok2")
case 30:
	fmt.Println("ok3")
default:
	fmt.Println("沒有匹配到")

}
//switch細節討論
//10)Type Switch;switch 語句還可以被用於type-switch來判斷某個interface變量中實際指向的變量類型【還沒有學interface,先體驗一把】
var x interface{}
var y = 10.0
x = y
switch i := x.(type) {
case nil:
	fmt.Println("x的類型~:%T",i)
case int:
	fmt.Println("x是 int 型")
case float64:
	fmt.Println("x 是 float64 型")
case func(int) float64:
	fmt.Println("x是func(int)型")
case bool,string:
	fmt.Println("x是bool或string型")
default:
	fmt.Println("未知型")

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值