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")
}

上一篇下一篇

猜你喜欢

热点阅读