value := 1
if value == 0 {
fmt.Println("v0")
}
value := 1
if value == 0 {
fmt.Println("v0")
}else{
fmt.Println("v1")
}
value := 1
if value == 0 {
fmt.Println("v0")
}else if value == 1 {
fmt.Println("v1")
}else{
fmt.Println("v2")
}
if contents, err := ioutil.ReadFile("filename.txt"); err == nil {
fmt.Println("符合条件,走这里")
}else{
fmt.Println("有错误,走这里")
}
value := 1
switch value {
case 1:
fmt.Println("1")
fallthrough
case 2:
fmt.Println("2")
default:
fmt.Println("0")
}
func main() {
/* 定义局部变量 */
var grade string = "B"
var marks int = 90
switch marks {
case 90: grade = "A"
case 80: grade = "B"
case 50,60,70 : grade = "C"
default: grade = "D"
}
switch {
case grade == "A" :
fmt.Printf("优秀!\n" )
case grade == "B", grade == "C" :
fmt.Printf("良好\n" )
case grade == "D" :
fmt.Printf("及格\n" )
case grade == "F":
fmt.Printf("不及格\n" )
default:
fmt.Printf("差\n" );
}
fmt.Printf("你的等级是 %s\n", grade );
}
- switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止。
- switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加 break。
- switch 默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case,如果我们需要执行后面的 case,可以使用 fallthrough 。
- 变量 var1 可以是任何类型,而 val1 和 val2 则可以是同类型的任意值。类型不被局限于常量或整数,但必须是相同的类型;或者最终结果为相同类型的表达式。
- 您可以同时测试多个可能符合条件的值,使用逗号分割它们,例如:case val1, val2, val3。