Go语言笔记--控制语句

1.判断语句if

1)条件表达式没有括号

2)支持一个初始化表达式(可以是并行方式)

3)左大括号必须和条件语言else在同一行

4)支持单行模式

5)初始化语句中的变量为block级别,同时隐藏外部同名变量

package main


import "fmt"


func main() {
    a := true
    if a, b, c := 1, 2, 3; a+b+c > 6 {
        fmt.Println("大于6")
    } else {
        fmt.Println("小于等于6")
        fmt.Println(a)
    }
    fmt.Println(a)
}

输出:
API server listening at: 127.0.0.1:33684
小于等于6
1
true

从上述例子看出,if中的a是1,外部的a是true,这两个不是同一个元素,if中的属于一个局部变量

2.循环语句for

1)Go只有for一个循环语句关键字,但支持3中形式

2)初始化和步进表达式可以是多个值

3)条件语句每次循环都会呗重新检查,因此不建议在条件语句中使用函数,尽量提前计算好条件并以变量或常量代替

3)左大括号必须和条件语句在同一行

例如:不同形式的三种for循环

package main


import "fmt"


func main() {
    //方式一
    a := 1
    for {
        a++
        if a > 3 {
            break
        }
    }
    fmt.Println(a)


    //方式二
    b := 1
    for b <= 3 {
        b++
    }
    fmt.Println(b)


    //方式三
    c := 1
    for i := 0; i < 3; i++ {
        c++
    }
    fmt.Println(c)
}

输出:
API server listening at: 127.0.0.1:17197
4
4
4

3.选择语句switch

1)可以使用任何类型或表达式作为条件语句

2)不需要写break,一旦条件符合自动终止

3)如果希望继续执行下一个case,需要使用fallthrough语句

4)支持一个初始化表达式(可以是并行方式),右侧需要跟分号

5)左大括号必须和条件语句在同一行

实例:

package main


import "fmt"


func main() {
    fmt.Println("方式一")
    a := 1
    switch a {
    case 0:
        fmt.Println("a = 0")
    case 1:
        fmt.Println("a = 1")
    }
    fmt.Println(a)


    fmt.Println("方式二")
    b := 1
    switch {
    case b >= 0:
        fmt.Println("b = 0")
        fallthrough
    case b >= 1:
        fmt.Println("b = 1")
    }
    fmt.Println(b)


    fmt.Println("方式三")
    switch c := 1; {
    case c >= 0:
        fmt.Println("c = 0")
        fallthrough
    case c >= 1:
        fmt.Println("c = 1")
    }
}

输出:
API server listening at: 127.0.0.1:14256
方式一
a = 1
1
方式二
b = 0
b = 1
1
方式三
c = 0
c = 1

4.跳转语句 goto,break,continue

1)三个语法都可以配合标签使用

2)标签名区分大小写,若不使用会造成编译错误

3)break与continue配合标签可用于多次循环的跳出

4)goto是调整执行位置,与其他2个语句配合标签的结果并不相同

实例:

package main


import "fmt"


func main() {
    fmt.Println("方式一")
LABEL:
    for {
        for i := 0; i < 10; i++ {
            if i > 2 {
                break LABEL
            } else {
                fmt.Println(i)
            }
        }
    }


    fmt.Println("方式二")
LABEL1:
    for i := 0; i < 10; i++ {
        for {
            fmt.Println(i)
            continue LABEL1
        }
    }
}

输出:
API server listening at: 127.0.0.1:37291
方式一
0
1
2
方式二
0
1
2
3
4
5
6
7
8
9

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值