day02 Go 條件語句if和switch
阿新 • • 發佈:2018-11-10
1、Go 語言提供了以下幾種條件判斷語句
語句 | 描述 |
---|---|
if 語句 | if 語句 由一個布林表示式後緊跟一個或多個語句組成。 |
if...else 語句 | if 語句 後可以使用可選的 else 語句, else 語句中的表示式在布林表示式為 false 時執行。 |
if 巢狀語句 | 你可以在 if 或 else if 語句中嵌入一個或多個 if 或 else if 語句。 |
switch 語句 | switch 語句用於基於不同條件執行不同動作。 |
select 語句 | select 語句類似於 switch 語句,但是select會隨機執行一個可執行的case。如果沒有case可執行,它將阻塞,直到有case可執行。 |
2、例子
package main import ( "fmt" "io/ioutil" ) func bounded(v int) string { if v > 100 { return "A" } else if v > 80 { return "B" } else { return "C" } } 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("unsupport op:" + op) } return result } func grade(v int) string { var g string switch { case v < 0 || v > 100 : panic(fmt.Sprintf("unsupport nums %s",v)) case v <= 60: g = "D" case v <= 70: g = "C" case v <= 80: g = "B" case v <= 100: g = "A" } return g } func main ( ) { fmt.Println( bounded(99), bounded(22), bounded(77), ) // 方法一 const filename = "abc.txt" content,err := ioutil.ReadFile(filename) if err != nil { fmt.Println(err) } else { fmt.Printf("%s\n",content) } //方法二 if content1,err1 := ioutil.ReadFile(filename) ; err1 != nil { fmt.Println(err1) } else { fmt.Printf("%s\n", content1) } fmt.Println( eval(3,4,"+"), eval(1,3,"*"), ) fmt.Println( grade(50), grade(77), grade(100), ) }