美文网首页一个程序猿的奋斗史php开发
Go语言学习笔记06.流程控制

Go语言学习笔记06.流程控制

作者: 快乐的提千万 | 来源:发表于2019-11-05 16:43 被阅读0次

    分支结构

    package main
    
    import "fmt"
    
    func main() {
        s := true
    
        //if和{之间的就是条件,条件通常都是关系运算符
        if s  { //左括号和if在同一行
            fmt.Println("真")
        }else{
            fmt.Println("假")
        }
    
        //if支持1个初始化语句, 初始化语句和判断条件以分号分隔
        if a := 10; a == 10 { //条件为真,指向{}语句
            fmt.Println("a == 10")
        }
    }
    
    package main //必须有一个main包
    
    import "fmt"
    
    func main() {
        var num int
        fmt.Printf("请按下楼层:")
        fmt.Scan(&num)
    
        switch num { //switch后面写的是变量本身
        case 1:
            fmt.Println("按下的是1楼")
            //break //go语言保留了break关键字,跳出switch语言, 不写,默认就包含
            fallthrough //不跳出switch语句,后面的无条件执行
        case 2:
            fmt.Println("按下的是2楼")
            //break
            fallthrough
        case 3:
            fmt.Println("按下的是3楼")
            break
            //fallthrough
        case 4:
            fmt.Println("按下的是4楼")
            break
            //fallthrough
        default:
            fmt.Println("按下的是xxx楼")
        }
    
        score := 85
        switch { //可以没有条件
        case score > 90: //case后面可以放条件
            fmt.Println("优秀")
        case score > 80: //case后面可以放条件
            fmt.Println("良好")
        case score > 70: //case后面可以放条件
            fmt.Println("一般")
        default:
            fmt.Println("其它")
        }
    }
    
    

    循环结构

    for循环
    package main //必须有一个main包
    
    import "fmt"
    
    func main() {
    
        //for 初始化条件 ;  判断条件 ;  条件变化 {
        //}
        //1+2+3 …… 100累加
    
        sum := 0
    
        //1) 初始化条件  i := 1
        //2) 判断条件是否为真, i <= 100, 如果为真,执行循环体,如果为假,跳出循环
        //3) 条件变化 i++
        //4) 重复2, 3, 4
        for i := 1; i <= 100; i++ {
            sum = sum + i
        }
        fmt.Println("sum = ", sum)
    
    }
    
    
    range迭代
    package main //必须有一个main包
    
    import "fmt"
    
    func main() {
    
        str := "abc"
    
        //通过for打印每个字符
        for i := 0; i < len(str); i++ {
            fmt.Printf("str[%d]=%c\n", i, str[i])
        }
    
        //迭代打印每个元素,默认返回2个值: 一个是元素的位置,一个是元素本身
        for i, data := range str {
            fmt.Printf("str[%d]=%c\n", i, data)
        }
    
        for i := range str { //第2个返回值,默认丢弃,返回元素的位置(下标)
            fmt.Printf("str[%d]=%c\n", i, str[i])
        }
    
        for i, _ := range str { //第2个返回值,默认丢弃,返回元素的位置(下标)
            fmt.Printf("str[%d]=%c\n", i, str[i])
        }
    
    }
    
    
    break和continue
    package main //必须有一个main包
    
    import "fmt"
    import "time"
    
    func main() {
    
        i := 0
    
        for { //for后面不写任何东西,这个循环条件永远为真,死循环
            i++
            time.Sleep(time.Second) //演示1s
    
            if i == 5 {
                //break //跳出循环,如果嵌套多个循环,跳出最近的那个内循环
                continue //跳过本次循环,下一次继续
            }
            fmt.Println("i = ", i)
        }
    }
    

    goto

    package main //必须有一个main包
    
    import "fmt"
    
    func main() {
    
        //goto可以用在任何地方,但是不能夸函数使用
        fmt.Println("11")
    
        goto End //goto是关键字, End是用户起的名字, 他叫标签
    
        fmt.Println("22")  //这句不会执行
    
    End:
        fmt.Println("33")
    
    }
    
    

    相关文章

      网友评论

        本文标题:Go语言学习笔记06.流程控制

        本文链接:https://www.haomeiwen.com/subject/bhkebctx.html