Golang学习笔记-条件语句,循环语句

aside section ._1OhGeD · · 548 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Go的条件语句,循环语句和C很像,不同的是Go的条件表达式可以不用括号扩起来,除此之外还有这些不同:

switch语句

switch分支中的代码执行完后会跳出switch代码块,如果我们需要执行后面的 case,可以使用fallthrough。

func main() {
    a:=1
    switch a {
    case 0:
        fmt.Println("a is 0")
    case 1:
        fmt.Println("a is 1")
        fallthrough
    case 2:
        fmt.Println("a is 2")
    }
}

结果:

a is 1
a is 2

switch支持任何类型的判断,例如下面的string:

func main() {
    var fruitName="apple"
    switch fruitName {
    case "apple":
        fmt.Println("苹果")
    case "banana","orange":
        fmt.Println("香蕉或橙子")
    }
}

switch的另一种形式是不提供任何被判断的值,然后在每个 case 分支中进行测试不同的条件,当任一分支的测试结果为 true 时,该分支的代码会被执行,这比链式的 if-else 语句可读性更好。

func main() {
    value:=65
    switch {
    case value>80:
        fmt.Println("优秀")
    case value>60:
        fmt.Println("及格")
    default:
        fmt.Println("不及格")
    }
}

使用 type-switch可以判断某个interface变量中实际存储的变量类型。

func main() {
    var value interface{}

    switch value.(type) {
    case nil:
        fmt.Printf("t is nil")
    case int:
        fmt.Printf("t is int")
    case float64:
        fmt.Printf("t is float64")
    case func(int) float64:
        fmt.Printf("t is func(int)")
    case bool, string:
        fmt.Printf("t is bool or string" )
    default:
        fmt.Printf("t is unknow type")
    }
}

for循环语句

Go没有while语句,所有循环都用关键字for:

普通for循环和C一样:

func main() {
    for i:=0;i<10;i++{
        fmt.Println(i)
    }
}

和C的while循环一样:

func main() {
    n:=0
    for n<10{
        fmt.Println(n)
        n++
    }
}

和C的for(;; ) 一样:

func main() {
    n:=0
    for {
        if n>9{
            break
        }
        fmt.Println(n)
        n++
    }
}

for range 循环可以对 slice、map、数组、字符串等进行迭代循环:

func main() {
    str:="hello"
    for i,c:=range str{
        fmt.Println(i,c)
    }
    fruitMap := map[string]int{"apple": 1, "banana": 2, "orange": 3}
    for key,value:=range fruitMap{
        fmt.Println(key,value)
    }
}

结果:

0 104
1 101
2 108
3 108
4 111
apple 1
banana 2
orange 3

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:aside section ._1OhGeD

查看原文:Golang学习笔记-条件语句,循环语句

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

548 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传