顺序控制
顺序控制
默认情况下,Go代码执行顺序是按照从上到下依次执行的,这种按照顺序执行的代码就叫做顺序语句。如下:
package main
import "fmt"
func main() {
// 顺序控制
fmt.Println("statement 1...")
fmt.Println("statement 2...")
fmt.Println("statement 3...")
}
分支控制
if语句
if语句
Go中if语句的基本语法如下:
使用案例如下:
package main
import "fmt"
func main() {
// if语句
var num1, num2 int = 10, 20
if num1 > num2 {
fmt.Println("num1 > num2")
} else if num1 < num2 {
fmt.Println("num1 < num2")
} else {
fmt.Println("num1 = num2")
}
}
说明一下:
- 执行if语句时,会依次判断各个条件表达式,找到第一个结果为true的if分支并执行对应的代码块,如果所有条件表达式都不成立,则执行最后的else代码块。
- if语句中的else if分支可以有一个或多个,最后的else分支是可选的,if语句支持嵌套。
- 每一个if分支的
{}
都是必须的,就算代码块中只有一行代码也不能省略,否则会产生报错。 - if语句中的条件表达式不需要用
()
包裹,虽然加上也不会报错,但是不建议这样做。 - if语句的条件表达式不能是赋值语句,比如
if flag = false
,否则会产生报错。
if后声明变量
if语句支持在if后声明一个变量,并以分号结束,然后在分号后面再给出条件表达式。如下:
package main
import "fmt"
func main() {
// if后声明变量
var num = 10
if base := 20; num < base {
fmt.Println("num < base")
}
}
注意: 在if后声明的变量仅在if语句中有效。
switch语句
switch语句
Go中switch语句的基本语法如下:
使用案例如下:
package main
import "fmt"
func main() {
// switch语句
var year, month int = 2024, 4
switch month {
case 1, 3, 5, 7, 8, 10, 12:
fmt.Println("这个月有31天")
case 4, 6, 9, 11:
fmt.Println("这个月有30天")
case 2:
day := 28
if (year%4 == 0 && year%100 != 0) || (year%400 == 0