判断语句
if else 语句
if 主要用于条件判断,语法为:
if 条件 { 业务代码 }
package main
import "fmt"
func main() {
age := 7 //赋值为7,则满足大于6的条件,控制台会打印good
if age > 6 {
fmt.Println("good")
}
}
与 && 、或 || 来进行组合判断
package main
import "fmt"
func main() {
age := 7 //赋值为7
//需要满足age大于6 并且 小于12 则成立
if age > 6 && age < 12 {
fmt.Println("good")
}
//需要满足age大于6 或者 小于12 都成立
if age > 6 || age < 12 {
fmt.Println("good")
}
}
if…else if…else
package main
import "fmt"
func main() {
age := 7 //赋值为7
//需要满足age大于6 并且 小于12 则成立
if age > 6 && age < 12 {
fmt.Println("good")
} else if age > 6 || age < 12 { //需要满足age大于6 或者 小于12 都成立
fmt.Println("good")
} else{ // 若以上条件都不成立,则输出else中的语句
fmt.Println("未匹配到满足项")
}
}
Go的使用习惯
我们已经看到了各种if-else结构,实际上我们也看到了编写相同程序的多种方法。在Go的哲学中,最好避免不必要的代码分支和缩进。人们也认为,越早返回越好。
package main
import "fmt"
func main() {
age := 7 //赋值为7
//需要满足age大于6 并且 小于12 则成立
if age > 6 && age < 12 {
fmt.Println("good")
return
} else if age > 6 || age < 12 { //需要满足age大于6 或者 小于12 都成立
fmt.Println("good")
return //结束语句
}
// 若以上条件都不成立,则输出else中的语句
fmt.Println("未匹配到满足项")
}
switch
switch 是一个条件语句,它计算表达式并将其与可能匹配的列表进行比较并执行相应的代码块。它可以被认为是替换复杂if else从句的惯用方式。当然这里的语法与java一致。
package main
import "fmt"
func main() {
age := 10
switch age {
case 5:
fmt.Println("The age is 5")
case 7:
fmt.Println("The age is 7")
case 10:
fmt.Println("The age is 10") // 满足该条件,则会执行
default:
fmt.Println("The age is unkown") //以上都不满足则执行默认语句
}
}
注意:在 Go 中 switch 只要匹配中了就会中止剩余的匹配项,这和 Java 很大不一样,它需要使用 break 来主动跳出。
switch 的 case 条件可以是多个值:
注意: 同一个 case 中的多值不能重复。
package main
import "fmt"
func main() {
age := 7
switch age {
case 7, 8, 9, 10, 11, 12:
fmt.Println("It's primary school")
case 13, 14, 15:
fmt.Println("It's middle school")
case 16, 17, 18:
fmt.Println("It's high school")
default:
fmt.Println("The age is unkown")
}
}