小工具知识网

当前位置: 首页 > 行业知识 > GO流程控制

行业知识

GO流程控制

2026-10-31 18:10:14 来源:互联网转载

1. if else

在Go语言中,关键字if是用于测试某个条件(布尔型或逻辑型)的语句,如果该条件成立,则会执行 if 后由大括号{}括起来的代码块,否则就忽略该代码块继续执行后续的代码。

()
if condition {    // 条件为真执行}
()

condition 称之为条件表达式或者布尔表达式,执行结果需返回true或false。{ 必须在条件表达式的尾部

x := 0if x 0 {    n--    fmt.Println(n)}

我们来看下面一种写法:

step := 2//初值可以省略,但是;必须有,但是这样写step的作用域就比较大了,脱离了for循环for ; step > 0; step-- {    fmt.Println(step)}

进一步简化代码,将 if 判断整合到 for 中,变为下面的代码:

step := 2for step > 0 {    step--    fmt.Println(step)}

结束循环的方法:break,return,goto,panic

其中,return和panic不会执行循环之后的语句,break会继续执行

3. for range

for range 结构是Go语言特有的一种的迭代结构,for range 可以遍历数组、切片、字符串、map 及管道(channel)

for key, val := range coll {    ...}

val 始终为集合中对应索引的值拷贝,因此它一般只具有只读性质,对它所做的任何修改都不会影响到集合中原有的值

str := "你好呀"for k, v := range str {fmt.Println(k, string(v))}

通过 for range 遍历的返回值有一定的规律:

  • 数组、切片、字符串返回索引和值。
  • map 返回键和值。
  • channel只返回管道内的值。

    以下和c无太大区别

    4. switch

    go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 那么如何做到执行完一个case之后,进入下一个case而不是跳出swtich呢?

    答案是:fallthrough

    var s = "hello"switch {case s == "hello":    fmt.Println("hello")    fallthroughcase s != "world":    fmt.Println("world")}

    5. goto

    goto 语句通过标签进行代码间的无条件跳转

    使用 goto 退出多层循环

    使用 goto 集中处理错误

    6. break

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

    func main() {OverLoop:for i := 0; i   

    7. continue

    continue 语句可以结束当前循环,开始下一次的循环迭代过程,仅限在 for 循环内使用,在 continue 语句后添加标签时,表示开始标签对应的循环

    package mainimport "fmt"func main() {OuterLoop:    for i := 0; i            

上一篇:TPshop独家揭秘,一站式购物,尽享全新体验!

下一篇:美团外卖口味定制秘籍,轻松设置多样美食选项