golang笔记-流程控制
if … else分支结构
func main() {
le := 1
if le > 10 {
fmt.Println(le ,">10")
}else if le ==0 {
fmt.Println(le, "=10")
}else {
fmt.Println(le, "<10")
}
}
for循环结构
Go语言中的循环语句只支持 for 关键字,而不支持 while 和 do-while 结构
func main() {
var sum int
for i := 1; i < 100; i++{
sum += i
}
fmt.Println("sum = ", sum)
}
使用for循环可以实现while的功能
乘法口诀表:
func main() {
for y := 1; y <= 9; y++ {
for x:=1; x<=y; x++ {
fmt.Printf("%d*%d=%d\t", x, y, x*y)
}
fmt.Println()
}
}
for range键值循环
for key, value := range []int{1, 2, 3, 4} {
fmt.Printf("key:%d value:%d\n", key, value)
}
switch case语句
case 与 case 之间是独立的代码块,不需要通过 break 语句跳出当前 case 代码块以避免执行到下一行
var a = "hello"
switch a {
case "hello":
fmt.Println(1)
case "world":
fmt.Println(2)
default:
fmt.Println(0)
}
fallthrough
关键字类似其他语言的continue
使用
goto语句
Go语言中 goto 语句通过标签进行代码间的无条件跳转,同时 goto 语句在快速跳出循环、避免重复退出上也有一定的帮助,使用 goto 语句能简化一些代码的实现过程。
类比:java中保留goto关键字,但是有标号,汇编中也有
func main() {
for x := 0; x < 10; x++ {
for y := 0; y < 10; y++ {
if y == 2 {
// 跳转到标签
goto breakHere
}
}
}
// 手动返回, 避免执行进入标签
return
// 标签
breakHere:
fmt.Println("done")
}
break 跳出循环
Go语言中 break 语句可以结束 for、switch 和 select 的代码块,另外 break 语句还可以在语句后面添加标签,表示退出某个标签对应的代码块,标签要求必须定义在对应的 for、switch 和 select 的代码块上。
func main() {
OuterLoop:
for i := 0; i < 2; i++ {
for j := 0; j < 5; j++ {
switch j {
case 2:
fmt.Println(i, j)
break OuterLoop
case 3:
fmt.Println(i, j)
break OuterLoop
}
}
}
}
continue 继续下一次循环
Go语言中 continue 语句可以结束当前循环,开始下一次的循环迭代过程,仅限在 for 循环内使用,在 continue 语句后添加标签时,表示开始标签对应的循环。
func main() {
OuterLoop:
for i := 0; i < 2; i++ {
for j := 0; j < 5; j++ {
switch j {
case 2:
fmt.Println(i, j)
continue OuterLoop
}
}
}
}