姚望舒 发表于 2025-10-1 17:59:35

流程控制 for switch range break goto

func forCase() {
        for i := 0; i < 10; i++ {
                if i == 5 {
                        continue
                }
                fmt.Println("位置1执行 for 语句块 i:", i)
        }
        fmt.Println("-------循环 slice ------")
        list := []int{1, 2, 3, 4, 5}
        for index, value := range list {
                fmt.Println("循环切片执行 for 语句块 index:", index, "value:", value)
        }
        fmt.Println("-------循环 map ------")
        mp := mapstring{"name": "tom", "age": "18"}
        for k, v := range mp {
                fmt.Println("循环map执行 for 语句块 k:", k, "v:", v)
        }

        fmt.Println("-------循环 string ------")
        str := "你们是八九点钟的太阳"
        for index, value := range str {
                fmt.Println("循环string执行 for 语句块 index:", index, "value:", value, "value:", string(value))
        }
        fmt.Println("------- 死循环------")
        var j int
        for {
                fmt.Println("死循环 执行 for 语句块:", j)
                j++
                if j >= 10 {
                        break
                }
        }

        fmt.Println("-------- 循环嵌套循环------ ")
        for i := 0; i < 2; i++ {
                for j := 0; j < 2; j++ {
                        fmt.Println("循环嵌套循环 i:", i, "j:", j)
                }
        }

        fmt.Println("-------- 循环嵌套循环 break 只能跳出当前循环---- ")
        for i := 0; i < 2; i++ {
                for j := 0; j < 2; j++ {
                        fmt.Println("循环嵌套循环 i:", i, "j:", j)
                        break
                }
        }

        fmt.Println("-------- 循环嵌套循环 break 跳出lab---- ")
lab1:
        for i := 0; i < 2; i++ {
                for j := 0; j < 2; j++ {
                        fmt.Println("循环嵌套循环 i:", i, "j:", j)
                        break lab1
                }
        }
}a is zero
a is one
a is not zero
位置1执行 for 语句块 i: 0
位置1执行 for 语句块 i: 1
位置1执行 for 语句块 i: 2
位置1执行 for 语句块 i: 3
位置1执行 for 语句块 i: 4
位置1执行 for 语句块 i: 6
位置1执行 for 语句块 i: 7
位置1执行 for 语句块 i: 8
位置1执行 for 语句块 i: 9
-------循环 slice ------
循环切片执行 for 语句块 index: 0 value: 1
循环切片执行 for 语句块 index: 1 value: 2
循环切片执行 for 语句块 index: 2 value: 3
循环切片执行 for 语句块 index: 3 value: 4
循环切片执行 for 语句块 index: 4 value: 5
-------循环 map ------
循环map执行 for 语句块 k: name v: tom
循环map执行 for 语句块 k: age v: 18
-------循环 string ------
循环string执行 for 语句块 index: 0 value: 20320 value: 你
循环string执行 for 语句块 index: 3 value: 20204 value: 们
循环string执行 for 语句块 index: 6 value: 26159 value: 是
循环string执行 for 语句块 index: 9 value: 20843 value: 八
循环string执行 for 语句块 index: 12 value: 20061 value: 九
循环string执行 for 语句块 index: 15 value: 28857 value: 点
循环string执行 for 语句块 index: 18 value: 38047 value: 钟
循环string执行 for 语句块 index: 21 value: 30340 value: 的
循环string执行 for 语句块 index: 24 value: 22826 value: 太
循环string执行 for 语句块 index: 27 value: 38451 value: 阳
------- 死循环------
死循环 执行 for 语句块: 0
死循环 执行 for 语句块: 1
死循环 执行 for 语句块: 2
死循环 执行 for 语句块: 3
死循环 执行 for 语句块: 4
死循环 执行 for 语句块: 5
死循环 执行 for 语句块: 6
死循环 执行 for 语句块: 7
死循环 执行 for 语句块: 8
死循环 执行 for 语句块: 9
-------- 循环嵌套循环------
循环嵌套循环 i: 0 j: 0
循环嵌套循环 i: 0 j: 1
循环嵌套循环 i: 1 j: 0
循环嵌套循环 i: 1 j: 1
-------- 循环嵌套循环 break 只能跳出当前循环----
循环嵌套循环 i: 0 j: 0
循环嵌套循环 i: 1 j: 0
-------- 循环嵌套循环 break 跳出lab----
循环嵌套循环 i: 0 j: 0switchCase("a", "b")

func switchCase(alpha string, in interface{}) {
        switch alpha {
        case "a":
                fmt.Println("a")
        case "b":
                fmt.Println("b")
        case "c", "d":
                fmt.Println("c")
                fmt.Println("d")
                fallthrough
        case "e":
                fmt.Println("e")
        default:
                fmt.Println("default")
        }

        switch in.(type) {
        case string:
                fmt.Println("string")
        default:
                fmt.Println("default")
        }
}-------- switch case----
a
stringfunc gotoCase() {
        var a = 0
lab1:
        fmt.Println("--------goto case------")
        for i := 0; i < 10; i++ {
                a += i
                if a == 5 {
                        goto lab1
                }
                fmt.Println("----------a:", a, "i:", i)
        }
}--------goto case------
----------a: 0 i: 0
----------a: 1 i: 1
----------a: 3 i: 2
----------a: 6 i: 3
----------a: 10 i: 4
----------a: 15 i: 5
----------a: 21 i: 6
----------a: 28 i: 7
----------a: 36 i: 8
----------a: 45 i: 9
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

赫连如冰 发表于 5 天前

感谢,下载保存了
页: [1]
查看完整版本: 流程控制 for switch range break goto