`

Go语言流程控制语句if、goto、for、switch

Go 
阅读更多

最近在看go语言,虽然网上大多数的评论都是在吐槽go语言,但是我喜欢简单的东西,我不拿它和任何语言去比,去用每一种语言完全是自己兴趣问题。

还没开始就跑题了 ~~!回到标题上来,golang的流程控制,刚开始学go,记性一直都不怎么好,做个笔记

流程控制包含三大类:条件判断、循环控制和无条件跳转。

if

go语言的if

package main
 
import (
    "fmt"
)
 
func main() {
    if a := 8; a > 2 {
        fmt.Println("a 比 10 大")
    } else {
        fmt.Println("a 比 10 小")
    }
}

输出  a 比 2 大

if语句允许在if里面声明变量,但是这个变量的作用域只在该条件逻辑块内。

 

goto

package main
import (
    "fmt"
)
func mygoto() {
    i := 0
Here:
    fmt.Println(i)
    i++
    goto Here    //跳转到Here
}
func main() {
    mygoto()
}

友情提示:如果你不小心看到这段代码最好还是别试了,听我的,没错

for循环

go语言里面最强大的一个控制逻辑 for,既可以用来循环读取数据,又可以当做while来控制逻辑,还能迭代操作,语法如下:

package main
import (
    "fmt"
)
func main() {
    a := 0
    for index := 0; index < 10; index++ {
        a += index
    }
    fmt.Println(a)
}

输出结果为 45

 

for可以代替while,忽略expression1 和 expression3 

func main() {
    a := 1
    for a < 1000 {
        a += a
    }
    fmt.Println(a)
}

循环中的两个关键操作,break和continue,break是跳出当前循环,continue是跳出本次循环

for a := 10; a > 0; a-- {
        if a == 5 {
            break //或者continue
        }
        fmt.Println(a)
    }
//break打印出来为10,9 , 8 , 7 , 6
//continue打印出来为10,9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1

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

func main() {
    a := [5]int{1, 2, 3, 4, 5}
    for k, v := range a {
        fmt.Println("key:", k)
        fmt.Println("value:", v)
    }
}

如果只想输出value而不想要key,像下面这么写编译会出错,因为go语言对于“声明而未被调用”的变量在编译阶段会报错,但是可以用“_”下划线来丢弃

func main() {
    a := [5]int{1, 2, 3, 4, 5}
    for k, v := range a {
        fmt.Println("value:", v)
    }
}

修改为

func main() {
    a := [5]int{1, 2, 3, 4, 5}
    for _, v := range a {
        fmt.Println("value:", v)
    }
}

switch

switch和许多语言中的用法一样,在if-else需要很多的时候可以用switch

func main() {
    a := 4
    switch a {
    case 1:
        fmt.Print("123")
    case 2, 3, 4:
        fmt.Print("456")
        fallthrough 
    default:
        fmt.Print("789")
    }
}

上面程序输出结果为 456789

根本不用break结尾,go语言默认每个case最后都带有break

fallthrough用于强制执行下一个case语句

 

OK,The End!

 


发布于:http://www.golune.com/blog/content/4b6fe6c324a8337ebe05679ed4c34fae8ec86

分享到:
评论

相关推荐

    6.Golang流程控制语句与循环(二)1

    在Golang编程语言中,流程控制语句是程序执行顺序的关键组成部分,它们允许开发者根据不同的条件来决定程序的运行路径。本篇文章将深入探讨其中的`switch-case`、`select-case`以及`goto`语句。 首先,我们来看`...

    Go语言中文文档高清版

    * 条件语句:if、switch、select等 * 循环语句:for、range等 * 跳转语句:goto、break、continue等 四、函数和闭包 * 函数定义和调用 * 闭包和递归函数 * 延迟调用和defer语句 五、面向对象编程 * 结构体和字段...

    C#goto语句查询源代码

    3. **鼓励不良编程习惯**:过度依赖`goto`可能导致代码设计不佳,更好的做法是利用C#的结构化控制流语句,如`if`、`while`、`for`和`switch`。 在C#中,`goto`语句的使用往往被视为一种反模式,因为它违背了“面向...

    Matlab中的goto函数

    在大多数情况下,可以使用MATLAB提供的结构化控制流语句(如`for`、`while`、`if`、`switch`等)来代替`goto`,保持代码的清晰性和可读性。在编写代码时,遵循良好的编程实践,比如减少代码的复杂性,使用结构化的...

    Go语言程序设计

    3. **控制流**:包括条件语句(if、switch)、循环语句(for、for-range)以及标签和跳转语句(goto、break、continue)。 4. **函数与方法**:Go语言支持常规的函数定义,同时也支持在结构体上定义方法,使得代码...

    Go语言学习笔记

    关键字:Go语言共有25个关键字或保留字,例如break、default、func、interface、select、case、defer、go、map、struct、chan、else、goto、package、switch、const、fallthrough、if、range、type、continue、for、...

    GO语言基础学习文档

    4. 流程控制:包括`if`、`goto`、`for`、`break`、`continue`、`switch`等。`for`是Go语言唯一的循环语句,`break`和`continue`可以配合标签跳出多层循环。 5. 函数:Go语言支持函数定义、多个返回值、变参、传值与...

    go语言笔记.pdf

    Go语言在流程控制方面提供了if语句、for循环、switch语句等结构。for循环是Go语言中唯一的循环语句,它具有灵活的语法结构;switch语句与C语言中的有所不同,Go的switch支持类型断言,且不需要显式地写break语句来...

    手撕Go语言v1.1.pdf

    - **总结**:Go语言的`switch`语句提供了比传统`switch`语句更灵活的用法。 **7.3 循环语句** - **for**:通用的循环结构。 - **break与continue**:控制循环的退出和跳过。 - **类while**:通过条件判断实现类似`...

    Go编程时光,一个零基础入门Golang的教程.zip

    else1.9 流程控制switch-case1.10 流程控制for 循环1.11 流程控制goto无条件跳转1.12 流程控制defer延迟语句1.13 流程控制理解 select 用法1.14异常机制panic和recover1.15 语法规则理解语句块与作用域第二章针对...

    Go编程语言规范1

    Go语言中有多种控制结构,例如if语句、switch语句、for语句、go语句、select语句、return语句、break语句、continue语句、goto语句、fallthrough语句、defer语句等。 语句 Go语言中有多种语句,例如空语句、表达式...

    学习go语言(初学者入门)

    3. 控制结构:Go语言支持传统的控制结构,如if-else条件语句和for循环,也有switch语句和goto跳转语句,但不支持传统的三元运算符。 4. 函数与方法:在Go语言中,函数是一等公民,可以作为参数传递给其他函数,也...

    Go语言基本知识和概念

    流程控制语句,例如条件判断(if-else)、循环(for)、开关(switch)和跳转(goto、break、continue、return),为Go程序提供了结构化执行流程的能力。这些语句对于控制程序的执行路径至关重要。 最后,Go语言的...

    Go语言学习之认识Golang

    ### Go语言学习之认识Golang #### 一、引言 Go语言,也称为Golang,是由Google设计的一种静态类型的编程语言。它以其简洁的语法、高效的并发模型以及丰富的标准库而闻名。本文将从Go语言的基础入手,通过具体代码...

    Go 语言参考手册.pdf

    Go语言中的控制结构包含多种语句,比如条件语句(if)、选择语句(switch)、循环语句(for)、Goto语句、Defer语句以及Fallthrough语句。这些语句提供了在不同场景下对程序流程进行控制的能力。 在并发方面,Go...

    Go语言最佳入门手册

    虽然不建议频繁使用,但Go语言还是提供了标签和GOTO语句。 #### 六、函数 **6.1 介绍** 函数是Go语言的核心组成部分之一。 **6.2 函数参数与返回值** Go语言中的函数可以接受多个参数并返回多个值。 **6.2.1 ...

    Go语言简单讲解特点及基本语法

    在Go语言中,常见的控制流语句包括条件语句(if、switch)、循环语句(for、range)、跳转语句(break、continue、goto、return)等。 **8. 函数** 函数是Go语言中执行特定任务的可重用代码块。在Go语言中,函数...

    golang学习路线总结

    Golang的流程控制包括if语句、switch语句、for循环、break语句、continue语句、goto语句等。 * if语句:用于条件判断。 * switch语句:用于多条件判断。 * for循环:用于循环执行某个操作。 * break语句:用于跳出...

    GO语言文档(GOOGLE, GO 手册,高清晰PDF最新版)

    - **控制结构**:讨论了流程控制语句,如if语句、for循环、switch-case结构,以及goto和break/continue语句。 - **数组、切片与映射**:深入分析了这些容器类型的特性和使用场景,特别是切片的动态特性及其在GO语言...

    Go后端开发大厂面试题.docx

    * 条件语句:if、switch * 循环语句:for、range * 跳转语句:break、continue、return、goto 四、Go语言的函数 * 函数的定义:func关键字 * 函数的调用:函数名(参数列表) * 函数的返回值:return语句 五、Go...

Global site tag (gtag.js) - Google Analytics