packagemainimport"fmt"funcmain(){ num :=10if num %2==0{ fmt.Println("the number is even")}else{ fmt.Println("the number is odd")}}
Go Playground在线运行 这里的if num % 2 == 0语句判断num对2求模的余数是否是0。如果是,那么就打印"the number is even",否则就打印"the number is odd"。由于这里num赋值为10,是偶数,因此这段程序会打印the number is even。
Golang中的if有个变体,可以在判断条件condition之前加一个语句,语法如下:
我们用这种写法重构下前面的程序。
Go Playground在线运行 这种写法的不同点在于,num变量初始化是在if语句内完成的,因此num变量的作用域也仅限与if语句(当然也包括else)内,因此也就无法在该if else语句外访问num变量。
我们现在写一个程序来体验下else if的用法。
Go Playground在线运行 这里由于num初始化赋值为99,因此num >= 51 && num <= 100条件判断通过,因此打印输出number is between 51 and 100。
package main
import "fmt"
func main() {
if num:= 10; num % 2 == 0 {
fmt.Println("the number is even")
} else {
fmt.Println("the number is odd")
}
}
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")
}
}
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")
}
}
syntax error: unexpected else, expecting }
if num % 2 == 0 {
fmt.Println("the number is even")
}; //semicolon inserted by Go
else {
fmt.Println("the number is odd")
}