一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第11天,点击查看活动详情。
控制结构
if条件语句
func main() {
i := 10
if i > 10 {
fmt.Println("i > 10")
} else {
fmt.Println("i <= 10")
}
}
注意:
- if后面的条件表达式不需要使用()
- if后面的{ } 是必须的,即使只有一句话
- { 不能独占一行 else前的 } 也不能独占一行
go语言的if语句中可以有一个简单的表达式语句,可以在 if 语句条件判断前进行初始化,初始化的变量只能在这个if else语句中使用。
func main() {
if i := 6;i > 10 {
fmt.Println("i > 10")
} else {
fmt.Println("i <= 10")
}
}
switch选择语句
switch i := 6; {
case i > 10:
fmt.Println("i>10")
case i > 5 && i <= 10:
fmt.Println("5<i<10")
default:
fmt.Println("i<=5")
}
case从上到下逐一进行判断,一旦满足条件立即执行对应分支并返回(break),其余分支不再做判断。
func main() {
switch i := 1; i{
case 1:
fallthrough
case 2:
fmt.Println("1")
default:
fmt.Println("没有匹配")
}
}
在上面的程序中,switch后面初始化语句后面有一个变量,这就要求case的类型必须与这个变量类型相同,否则编译不能通过。case 1中的fallthrough表示如果case满足条件会继续执行下面的case,继续寻找。
for循环语句
func main() {
sum := 0
for i := 1;i <= 100;i++ {
sum += i
}
fmt.Println("the sum is",sum)
}
go语言没有while语句,但是可以通过for语句实现while语句的效果。如下所示定义变量 i 为1,通过for语句判断得出结果。
func main() {
sum := 0
i := 1
for i <= 100 {
sum += i
i++
}
fmt.Println("the sum is", sum)
}
continue
continue可以跳出本次循环,继续执行下一个循环。
break
break可以跳出整个for循环,哪怕for循环没有执行完,也会强制终止。
func main() {
sum := 0
i := 1
for {
sum += i
i++
if i > 100 {
break
}
}
fmt.Println("the sum is", sum)
}
上面的例子,for语言没有条件语句,通过与break的配合,也能实现与上面的例子一样的结果。