在Go语言中,条件语句主要用于根据不同的条件执行不同的代码块。Go语言支持的条件语句主要包括if
语句和switch
语句。下面我将分别介绍这两种条件语句的基本用法。
if 语句
if
语句是最基本的条件语句,它允许程序根据一个布尔表达式的值来决定是否执行一段代码。Go语言中的if
语句有一个特点,就是在if
关键字后面可以直接定义一个简单的语句(如变量声明),这个语句的作用域仅限于if
及其相关的else
分支。
基本语法:
if 表达式 {
// 当表达式为true时执行的代码
} else {
// 当表达式为false时执行的代码
}
示例:
package main
import "fmt"
func main() {
num := 10
if num > 0 {
fmt.Println("num 是正数")
} else {
fmt.Println("num 不是正数")
}
}
包含初始化语句的 if 语句:
package main
import "fmt"
func main() {
if num := -5; num < 0 {
fmt.Println("num 是负数")
} else {
fmt.Println("num 是非负数")
}
}
switch 语句
switch
语句用于根据不同的条件执行不同的代码块,它提供了一种更清晰的方式来处理多条件分支的情况。
基本语法:
switch 变量或表达式 {
case 值1:
// 当变量或表达式的值等于值1时执行的代码
case 值2:
// 当变量或表达式的值等于值2时执行的代码
default:
// 当变量或表达式的值不匹配任何case时执行的代码
}
特点:
switch
后面的表达式可以是任意类型。case
后面的值可以是常量或变量。- 如果没有
break
语句,Go语言会自动进行“break”,即不会像C/C++那样发生“fallthrough”。 - 可以使用
fallthrough
关键字显式地让控制流进入下一个case,但需要确保逻辑正确性。
示例:
package main
import "fmt"
func main() {
grade := 'B'
switch grade {
case 'A':
fmt.Println("优秀")
case 'B', 'C':
fmt.Println("良好")
case 'D':
fmt.Println("及格")
default:
fmt.Println("不及格")
}
}
以上就是Go语言中条件语句的基本介绍。通过这些语句,你可以实现基于不同条件的复杂逻辑判断。