• 流程控制


    if语句
    定义:由一个布尔表达式后紧跟一个或多个语句组成
    1、if...else语句
    if i < 10 {
    fmt.Println("i<10")
    } else if i == 10 {
    fmt.Println("i=10")
    } else {
    fmt.Println("i>10")
    }
    2、if 嵌套语句
    if name == "girl" {
    if age == 18 {
    fmt.Println("The girl welcomes you.")
    }
    }

    switch 语句
    1、直接判断
    var i = 0
    switch i {
    case 0:
    case 1:
    fmt.Println(1)
    case 2:
    fmt.Println(2)
    default:
    fmt.Println("default")
    }
    2、带初始化语句
    names := []string{"Linux", "Golang", "Java", "Python"}
    switch name := names[0]; name {
    case "Golang":
    fmt.Println("Golang")
    case "Java":
    fmt.Println("Java")
    case "Python":
    fmt.Println("Python")
    default:
    fmt.Println("oldboy")
    }
    3、一个 case 多个可能符合条件的值
    var i = 1
    switch i {
    case 0, 1:
    fmt.Println("0 or 1")
    case 2:
    fmt.Println("2")
    default:
    fmt.Println("default")
    }
    4、省略条件表达式应用
    var i = 10
    switch {
    case i >= 0 && i < 10:
    fmt.Println("i > 0 and i < 10")
    case i >= 10 && i < 20:
    fmt.Println("i > 10 and i < 20")
    default:
    fmt.Println("default")
    }
    5、fallthrough应用
    注意:Go语言 switch 语句每个 case 最后默认带有break,匹配成功后不会自动向下执行其他 case,
    而是跳出整个switch,可以使用 fallthrough 语句强制执行后面的 case 代码
    var i = 0
    switch i {
    case 0:
    fmt.Println("fallthrough")
    fallthrough
    case 1:
    fmt.Println(1)
    case 2:
    fmt.Println(2)
    default:
    fmt.Println("default")
    }

    for循环
    1、方式一
    for i := 1; i < 10; i++ {
    fmt.Println(i)
    }
    2、方式二
    var i int
    for i = 2; i < 100; i++ {
    fmt.Println(i)
    }

    range 循环语句
    1、for range 英文字符串,key 值按照+1顺序递增
    var str string = "girl"
    for k, v := range str {
    fmt.Println(k, string(v))
    }
    2、for range 包含中文的字符串,英文字符 key 值按照+1顺序递增,中文字符 key 值按照+3顺序递增
    var str string = "老男孩IT教育,只培养技术精英。"
    for k, v := range str {
    fmt.Println(k, string(v))
    }
    3、数组遍历,for range 数组程序会复制对象,key、value 都是从复制品中取出
    a) 一维数组遍历
    for k, v := range arr {
    if k == 0 {
    arr[0], arr[1] = 1000, 1000
    fmt.Println("修改原数组:", arr)
    }
    arr[k] = v + 100 // 使用复制品中取出的 value 修改原数组
    }
    b)多维数组遍历
    var arr [2][3]int = [2][3]int{{1, 2, 3}, {2, 4, 6}}
    for k1, v1 := range arr {
    for k2, v2 := range v1 {
    fmt.Printf("%d*%d=%d ", k1+1, k2+1, v2)
    }
    fmt.Printf(" ")
    }
    4、slice 遍历
    arr := [...]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
    slice := arr[:]
    for key, value := range slice {
    fmt.Printf("key: %v , value : %v ", key, value)
    }
    5、map 遍历
    m := map[int]string{
    1: "oldboy",
    2: "Linux",
    3: "Golang",
    4: "Python",
    5: "Java",
    6: "DBA",
    }
    for k, v := range m {
    fmt.Printf("%d => %s ", k, v)
    }
    6、channel 遍历
    var ch chan int
    ch = make(chan int, 10)
    for i := 0; i < 10; i++ {
    ch <- i
    }
    close(ch)
    for v := range ch {
    fmt.Println(v)
    }

    循环控制语句
    GO 语言支持 goto(慎用)、break、continue 三种循环控制语句,三个语句都可以配合标签( label )使用,
    标签名区分大小写,定义后不使用会造成编译错误
  • 相关阅读:
    Nios学习笔记3——流水灯实验
    Nios学习笔记2——流水灯实验
    Nios学习笔记1——流水灯实验
    转:摄像头camera 7660/7670/7225/9650以及程序流程(一)
    fpga 扇入扇出
    门控时钟的使用
    门控时钟与多扇出问题解决方案
    为所欲为——教你什么才是真正的任意分频
    SDRAM时序--读高手进阶,终极内存技术指南
    FPGA你必须知道的那些事儿
  • 原文地址:https://www.cnblogs.com/ywjfx/p/10387127.html
Copyright © 2020-2023  润新知