Go学习笔记03 | 流程控制

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

一、if else for

if

写在 if 里面,则是局部变量:

package main

import (
    "fmt"
)

func main() {
    if age := 34; age > 20 {
        fmt.Println("成年人", age)
    }
    fmt.Println(age)  // 这行没有输出,会报错
}

写在 if 外面,则是全局变量:

package main

import (
    "fmt"
)

func main() {
    age := 34
    if age > 20 {
        fmt.Println("成年人", age)
    }
    fmt.Println(age)
}

输出:

成年人 34
34

细节

  • if {} 括号不能省略
  • { 必须紧挨着条件,不能换行

for

初始化值可以写在 for 外面,但是循环里第一个 ; 还是必须写,否则报错。

package main

import (
    "fmt"
)

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

for range:切片

swich case

条件判断。初始化赋值也可以写在 switch 里面,但是要加 ;

Golang 中 switch case 可以不写 break。多个 case 值用 , 隔开。

分支使用表达式,此时 switch 语句后面不需要再写判断变量。如果写了判断变量,则会报错。

package main

import (
    "fmt"
)

func main() {
    var age = 30
    switch {
    case age < 24:
        fmt.Println("好好学习")
    case age >= 24 && age <= 60:
        fmt.Println("好好赚钱")
    case age > 60:
        fmt.Println("注意身体")
    default:
        fmt.Println("输入错误")
    }
}

Golang 穿透

fallthrough 可以执行满足 case 条件的下一个 case,只穿透紧挨着的 case 一次。

package main

import (
    "fmt"
)

func main() {
    var age = 30
    switch {
    case age < 24:
        fmt.Println("好好学习")
    case age >= 24 && age <= 60:
        fmt.Println("好好赚钱")
        fallthrough
    case age > 60:
        fmt.Println("注意身体")
    default:
        fmt.Println("输入错误")
    }
}

输出:

好好赚钱
注意身体

二、continue break goto

在多重循环中,可以用标号 label 标出想 break 的循环。

continue 仅限在 for 循环内使用,只跳出当前循环。

goto 跳转到指定标签。

package main

import (
    "fmt"
)

func main() {
    var n = 30
    if n > 24 {
        fmt.Println("成年人")
        goto label3
    }

    fmt.Println("a")
    fmt.Println("b")
label3:
    fmt.Println("c")
}

输出:

成年人
c

三、参考教程

Golang 教程 P13-16


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

本文来自:简书

感谢作者:Wonz

查看原文:Go学习笔记03 | 流程控制

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

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