1、if...else判断语法
2、if嵌套语法
3、switch语句
4、类型switch语句
5、fallthrough关键字使用
小结
1、if...else判断语法语法的使用和其他语言没啥区别。
样例代码如下:
// 判断语句
func panduan(a int) {
if a > 50 {
fmt.Println("a > 50")
} else if a < 30 {
fmt.Println("a < 30")
} else {
fmt.Println("a <= 50 and a >= 30")
}
}
func main() {
panduan(120)
}
执行结果
2、if嵌套语法a > 50
样例代码如下
//嵌套判断
func qiantao(b, c uint) {
if b >= 100 {
b -= 20
if c > b {
fmt.Println("c OK")
} else {
fmt.Println("b OK")
}
}
}
执行结果
3、switch语句c OK
两种写法,不需要加break。
样例代码如下
//switch使用
func test_switch() {
var a uint = 90
var result string
switch a {
case 90:
result = "A"
case 80, 70, 60:
result = "B"
default:
result = "C"
}
fmt.Printf("result: %v\n", result)
switch {
case a > 90:
result = "A"
case a <= 90 && a >= 80:
result = "B"
default:
result = "C"
}
fmt.Printf("result: %v\n", result)
}
执行结果
result: A
result: B
注意
1、可是在switch后面加变量,后面的case主要做匹配判断。也可以直接使用switch{},case直接对关系运算结果做匹配。
2、 case中可以选择匹配多项。
4、类型switch语句switch语句可以使用type-switch进行类型判断,感觉很实用的语法。
样例代码如下
//测试类型switch
func test_type_switch() {
var x interface{}
x = 1.0
switch i := x.(type) {
case nil:
fmt.Printf("x type = %T\n", i)
case bool, string:
fmt.Printf("x type = bool or string\n")
case int:
fmt.Printf("x type = int\n")
case float64:
fmt.Printf("x type = float64\n")
default:
fmt.Printf("未知\n")
}
}
执行结果
x type = float64
注意
1、interface{}可以表示任何类型。
2、语法格式变量.(type)
5、fallthrough关键字使用使用fallthrough关键字会强制执行后面的case语句内容,不管时候触发该case条件。
样例代码如下
// 测试fallthrough
func test_fallthrough() {
a := 1
switch {
case a < 0:
fmt.Println("1")
fallthrough
case a > 0:
fmt.Println("2")
fallthrough
case a < 0:
fmt.Println("3")
fallthrough
case a < 0:
fmt.Println("4")
case a > 0:
fmt.Println("5")
fallthrough
case a < 0:
fmt.Println("6")
fallthrough
default:
fmt.Println("7")
}
}
执行结果
2
3
4
注意
1、如果一旦在往下执行case内容中不存在fallthrough,则会停止继续往下执行case内容。
小结我看到还有个select语句,需要和chan关键字进行配合使用,没不了解,后面先研究一下chan关键字。
到此这篇关于Go语言学习之条件语句使用详解的文章就介绍到这了,更多相关Go条件语句内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!