一个程序猿的奋斗史php开发

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

2019-11-05  本文已影响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")

}

上一篇下一篇

猜你喜欢

热点阅读