Go语言学习笔记(三)Go语言流程控制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kang___xi/article/details/86529818

1.if-else(分支结构)

a).格式1
if 表达式1 {
    分支1
} else if 表达式2 {
    分支2
} else{
    分支3
}

b).格式2

if 语句1; 条件表达式 {
    //to do
}


注意:
a).左花括号{必须跟在if/else后面,不能另起一行

2.for(循环结构)

for 初始语句;条件表达式;结束语句{
    循环体代码
}

for i < 19 {  //等价于C语言中的while(i < 19)
    i++
}

for i := 0; i < 12; i++ {  
    //to do
}

for {    //死循环,等价于C语言中的while(true)
    //to do 
}

初 始语 句:用于执行变量初始化,如果变量在此处声明,那么该变量的作用于将被局限在这个for循环内
条件表达式:控制是否循环的开关。对每次循环开始前计算的表达式,如果表达式为true,则循环继续,否则结束循环。
结 束语 句:用于更新循环变量

3.for-range(键值循环)

a).for-range遍历数组/切片/字符串

//index为元素下标,value为元素值
for index, value := range arr {
    //to do
}

b).for-range遍历map
//key为map的键,value为key对应的值
for key, value := range map {
    //to do
}

c).for-range遍历通道
for v := range c {
    fmt.Println(v)    //不断从通道中取数据,直到通道被关闭
}

4.switch-case语言

var a = "hello"
switch a {
case "hello":
    fmt.Println(1)
case "world":
    fmt.Println(2)
default:
    fmt.Println(0)
}


//一分支多值
var a = "mum"
switch a {
case "mum", "daddy":
    fmt.Println("family")
......
}

//类if
var r int = 11
switch {
    case r > 10 && r < 20:
        fmt.Println(r)
......
}

//跨case的fallthrough
var s = "hello"

switch {
    case s == "hello":
        fmt.Println(s)
        fallthrough
    case s != "world":   //若前面有fallthrough,则忽略当前case的条件表达式,执行后面的代码
        fmt.Println("world")
}

5.break

        break语句可以结束for、switch和select的代码块。break语句还可以在语句后面添加标签,表示退出某个标签对应的代码块,标签要求必须定义在对应的for、switch和select代码块上。

猜你喜欢

转载自blog.csdn.net/kang___xi/article/details/86529818