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), ) }