优雅地进行条件判断:
switch result := calculate(); {
case result < 0:
case result > 0:
default:
// 0
}
switch a, b := x[i], y[j]; {
case a < b: t = -1
case a == b: t = 0
case a > b: t = 1
}
package main
func main() {
//不需要特别使用 break 语句来表示结束,在执行完相应代码后就会退出整个 switch 代码块。
var i int = 0
switch i {
case 0: // 空分支,只有当 i == 0 时才会进入分支
print("0")
case 1:
print("1")
}
println()
// 如果在执行完每个分支的代码后,还希望继续执行后续分支的代码,可以使用 fallthrough 关键字来达到目的。
switch i {
case 0:
print("fall 0 ")
fallthrough//只能fall一个分支
case 1:
print("fall 1 ")
// fallthrough
case 2:
print("fall 2 ")
}
//default 分支可以出现在任何顺序,但最好将它放在最后。执行完其他所有判断才到他
var num int = 100
switch num {
case 98, 99:
println("98 or 99")
case 100:
println("100")
default:
println("other")
}
println()
switch num {
default:
println("other")
case 98, 99:
println("98 or 99")
case 100:
println("100")
}
println()
//switch condition
//1.1会不会有冲突,不会两条件都符合看谁在前
switch {
case num > 80:
println("num > 80")
case num > 60:
println("num > 60")
}
println()
switch {
case num > 60:
println("num > 60")
case num > 80:
println("num > 80")
}
var num1 int = 7
switch {
case num1 < 0:
println("Number is negative")
case num1 > 0 && num1 < 10:
println("Number is between 0 and 10")
default:
println("Number is 10 or greater")
}
println()
//switch initialization
switch num2 := 99; {
case num2 < 0:
println("Number is negative")
case num2 > 0 && num2 < 10:
println("Number is between 0 and 10")
default:
println("Number is 10 or greater")
}
//优雅地进行条件判断:
// switch result := calculate(); {
// case result < 0:
// case result > 0:
// default:
// // 0
// }
// switch a, b := x[i], y[j]; {
// case a < b: t = -1
// case a == b: t = 0
// case a > b: t = 1
// }
}