【Go 学习笔记】4 - Go 流程控制

流程控制的作用

选择:根据条件转到不同的执行序列
循环:根据条件反复执行某个序列。当然每次执行的输入输出结果可能不一样
跳转:根据条件返回某个执行语句。

Go 语言支持一下几种流程控制语句

条件语句:关键字 if else 和else if
选择语句:关键字 switch case 和 select
循环语句:关键字 for range
跳转语句:goto
另外,为了满足控制需求,还有关键字: break continue和 fallthrough

条件语句

// 示例
if a < 5 {
    return 0
}else{
    return 1
}

注意点

条件语句不需要使用括号将条件包含起来。
不论语句体内有多少语句,花括号{}都是必须存在的。
左花括号必须和if或是else处于同一行
条件语句可以使用 ; 间隔
在有返回值的函数中,不允许将return 包含在 if……else……结构中  

选择语句

switch i {
    case 0:
        fmt.Printf("0")
    case 1:
        fmt.Printf("1")
    case 2:
        fallthrough
    case 3:
        fmt.Printf("3")
    default:
        fmt.Printf("Default")
}

// 结果:
i = 0 out 0
i = 1 out 1
i = 2 out 3
i = 3 out 3
i = 4 out Default 

注意点

左花括号必须和switch在一行
条件表达式不限制为常量或是整数
单个case中,可以出现多个结果选项
不需要用break来明确退出case
明确添加fallthrough后,会继续执行紧跟的笑一个case,如示例中的i=2返回了3
可以不设定switch之后的条件表达式。

循环语句

go语言支持for循环,不支持 while

// 示例
sum := 0
for i :=0;i <10; i++ {
    sum++
}

注意点

for 循环后面的条件表达式不需要用圆括号括起来。
左花括号必须和for在同一行    
for 循环允许在循环条件中定义和初始化变量,但是 Go不支持以 逗号 为间隔的多赋值,必须使用平行赋值的方式, 初始化多个变量。
for 支持 continue break来控制循环。

for 配合 range 可以用于读取 slice 和map的数据

for k,v := range map{
    fmt.Println("map's key:",k)
    fmt.Println("map's val:",v)
}

go 支持 多返回值 对于 声明而未被调用的变量,编译的时候,会报错。这时候,可以使用 _ 来丢弃
for _,v := range map{
    fmt.Println("map's val:",v)
}

跳转语句

goto 关键字,就是跳转到本函数内的某个标签

//示例
func myfunc(){
    i := 0
    HERE:           // 标签名是大小写敏感的。
    fmt.Println(i)
    i++
    if i < 10 {
        goto HERE    
    } 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值