case里面两个条件_Go语言条件语句之 switch 语句
點擊上方藍色 “鐵匠學編程” 關注我,讓我們一起學習!
??? switch語句會根據傳入條件不同,選擇不同的分支執代碼進行執行,他可以代替多個 if else 子句,Go 語言的分支語句和 PHP 的類似,Go 不需要顯示的通過break 進行退出。
package mainimport "fmt"func?main()?{ score := 100 switch { case score >= 90: fmt.Println("Grade: A") case score >= 80 && score < 90: fmt.Println("Grade: B") case score >= 70 && score < 80: fmt.Println("Grade: C") case score >= 60 && score < 70: fmt.Println("Grade: D") default: fmt.Println("Grade: F")??}}在上面的程序中,switch 會將 score 與每個 case 語句進行從上到下的比較,并執行與選項匹配的第一個代碼塊進行執行。
注意:此處的 score 不能放到 switch 后面,否則會報錯,只有在進行分支判斷時候才可以
在選項列表中,不允許出現重復相等的條件判斷,如下:
package mainimport "fmt"func main() { score := 100 switch {??case?score?=?90: fmt.Println("Grade: A")??case?score?=?90:??????... default: fmt.Println("Grade: F") }}上面的程序編譯時會報錯。
在Go語言中,我們可以用逗號分隔不同的分支條件來合并分支語句,如 ?case 90,100?,這里我們不能像PHP 那樣通過多個相鄰的 case 語句來合并相同的分支語句,如下:
package mainimport "fmt"func main() {??switch?score?:=?99;?score?{??case?score?90:?//?此時被m默認為空語句直接退出??case?score?95:????fmt.Println("grade A")??case?score?80, 85:?? fmt.Println("grade B")??default:????fmt.Println("grade F")??}}上面的例子中我們都添加了默認情況,就是在所有的分支語句都不匹配的時候,將運行默認情況,他的位置并不一定在最后,任何地方都可以。
fallthrough
前面我們說到不能通過相鄰的 case 語句來合并相同的分支語句,我們可以通過 逗號?分隔來進行執行多個條件來合并語句。Go 語言在執行完某一個條件分支之后會自動退出當前條件語句,如果還想繼續執行后續的分支語句,可以通過 fallthrough?來繼續執行后面的分支語句。如下:
package mainimport "fmt"func main() { score := 60 switch score { ... case 60: fallthrough case 65: fmt.Println("Grade: D") ...??}?}此時,就相當于合并了 case 60 和case 65 兩個分支語句。
Go語言 的 Reflect 會根據類型斷言進行判斷,后面分享 反射的時候再來說。
如果您看到了我的文章,歡迎留下意見和建議,指出不足。感謝!
加油!不僅自己~還有你~
總結
以上是生活随笔為你收集整理的case里面两个条件_Go语言条件语句之 switch 语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css毛玻璃效果白边_css3毛玻璃效果
- 下一篇: 如何把meshlab中的圆环去掉_如何设