golang学习笔记(四)流程控制
2022-11-09 本文已影响0人
NIIIICO
1、if
(1)条件语句没有()
(2)支持1个初始化语句
package main
import "fmt"
func main() {
a := 1
// 条件语句没有()
if a == 1 {
fmt.Printf("我是1\n")
}
// 支持1个初始化语句
if b := 2; b > 1 {
fmt.Printf("b:%d > 1\n", b)
}
}
2、switch
(1)switch后边没有()
(2)默认会在语句后边添加 break,通过添加fallthrough会执行下一个case(无论是否满足)
(3)支持一个初始化语句
(4)switch可以没有条件,条件写在case上
package main
import "fmt"
func main() {
a := 1
// switch后边没有()
switch a {
case 1:
// 默认会在语句后边添加 break
fmt.Println("我是1")
// fallthrough会执行下一个case,无论是否满足
// fallthrough
case 2:
fmt.Println("我是2")
case 3:
fmt.Println("我是3")
default:
fmt.Println("我是default")
}
// 支持一个初始化语句
switch b := 1; b {
case 1:
fmt.Println("我是1")
case 2, 3, 4: // 可以写多个条件
fmt.Println("我是2")
default:
fmt.Println("我是default")
}
// 可以没有条件
switch {
case a == 1: // 条件写在case上
fmt.Println("我是1")
case a == 2:
fmt.Println("我是2")
default:
fmt.Println("我是default")
}
}
3、for
(1)条件语句没有()
(2)没有条件:死循环
package main
import "fmt"
func main() {
// 条件语句没有()
for i := 0; i < 10; i++ {
fmt.Println(i)
}
j := 0
// 死循环
for {
j++
if j == 10 {
break
}
}
}
4、range
迭代,返回下标(index,key)和值
package main
import "fmt"
func main() {
str := "abc"
// 迭代,返回下标和值
for index, value := range str {
fmt.Printf("index:%d, value:%c\n", index, value)
}
mapName := map[string]string{
"key1": "1",
"key2": "2",
"key3": "3",
}
// 迭代,返回key和值
for key, value := range mapName {
fmt.Printf("key:%s, value:%s\n", key, value)
}
}
5、goto
package main
import "fmt"
func main() {
fmt.Println("111111111111")
goto END
fmt.Println("222222222222")
fmt.Println("333333333333")
// 声明后必须使用
END:
fmt.Printf("end")
}