if
语句,即条件语句,语法是
if condition {
}
如果条件为真,则执行{}
之间的代码。
与C等其他语言不同,即使在{}
之间只有一条语句,{}
也是强制性的。
if
语句还有可选的else if
和else
模块。
if condition {
} else if condition {
} else {
}
可以有任意数量的else if
。从上到下对条件的真实性进行检测。如果条件的值为true,则执行相应的代码块。如果没有一个条件为真,则执行else
块。
让我们写一个简单的程序。
示例
找出一个数字是奇数还是偶数。
package main
import (
"fmt"
)
func main() {
num := 10
if num % 2 == 0 { // 检测是否偶数
fmt.Println("the number is even")
} else {
fmt.Println("the number is odd")
}
}
if num % 2 == 0
语句检查数字除以2余数是否为0。如果是,则打印“数字是偶数”,否则打印“数字是奇数”。在上面的程序中,数字是偶数。
if
还有一个变体,它包含一个可选的语句模块,该模块在条件求值之前执行。它的语法是
if statement; condition {
}
让我们重写示例程序,用上面的语法来判断这个数字是偶数还是奇数。
package main
import (
"fmt"
)
func main() {
if num := 10; num % 2 == 0 { // 检测是否偶数
fmt.Println(num,"is even")
} else {
fmt.Println(num,"is odd")
}
}
在上面的程序中,num
在if
语句中初始化。需要注意的一点是,num
只能从if
和else
内部访问。也就是说,num
的范围仅限于if else
块。如果我们试图从if
或else
外部访问num
,编译器就会报错。
让我们再写一个使用else if
的程序。
package main
import (
"fmt"
)
func main() {
num := 99
if num <= 50 {
fmt.Println("number is less than or equal to 50")
} else if num >= 51 && num <= 100 {
fmt.Println("number is between 51 and 100")
} else {
fmt.Println("number is greater than 100")
}
}
在上面的程序中,如果num >= 51 && num <= 100
为真,则程序将输出51到100之间的数字。