最近在看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
相关推荐
在Golang编程语言中,流程控制语句是程序执行顺序的关键组成部分,它们允许开发者根据不同的条件来决定程序的运行路径。本篇文章将深入探讨其中的`switch-case`、`select-case`以及`goto`语句。 首先,我们来看`...
* 条件语句:if、switch、select等 * 循环语句:for、range等 * 跳转语句:goto、break、continue等 四、函数和闭包 * 函数定义和调用 * 闭包和递归函数 * 延迟调用和defer语句 五、面向对象编程 * 结构体和字段...
3. **鼓励不良编程习惯**:过度依赖`goto`可能导致代码设计不佳,更好的做法是利用C#的结构化控制流语句,如`if`、`while`、`for`和`switch`。 在C#中,`goto`语句的使用往往被视为一种反模式,因为它违背了“面向...
在大多数情况下,可以使用MATLAB提供的结构化控制流语句(如`for`、`while`、`if`、`switch`等)来代替`goto`,保持代码的清晰性和可读性。在编写代码时,遵循良好的编程实践,比如减少代码的复杂性,使用结构化的...
3. **控制流**:包括条件语句(if、switch)、循环语句(for、for-range)以及标签和跳转语句(goto、break、continue)。 4. **函数与方法**: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、...
4. 流程控制:包括`if`、`goto`、`for`、`break`、`continue`、`switch`等。`for`是Go语言唯一的循环语句,`break`和`continue`可以配合标签跳出多层循环。 5. 函数:Go语言支持函数定义、多个返回值、变参、传值与...
Go语言在流程控制方面提供了if语句、for循环、switch语句等结构。for循环是Go语言中唯一的循环语句,它具有灵活的语法结构;switch语句与C语言中的有所不同,Go的switch支持类型断言,且不需要显式地写break语句来...
- **总结**:Go语言的`switch`语句提供了比传统`switch`语句更灵活的用法。 **7.3 循环语句** - **for**:通用的循环结构。 - **break与continue**:控制循环的退出和跳过。 - **类while**:通过条件判断实现类似`...
else1.9 流程控制switch-case1.10 流程控制for 循环1.11 流程控制goto无条件跳转1.12 流程控制defer延迟语句1.13 流程控制理解 select 用法1.14异常机制panic和recover1.15 语法规则理解语句块与作用域第二章针对...
Go语言中有多种控制结构,例如if语句、switch语句、for语句、go语句、select语句、return语句、break语句、continue语句、goto语句、fallthrough语句、defer语句等。 语句 Go语言中有多种语句,例如空语句、表达式...
3. 控制结构:Go语言支持传统的控制结构,如if-else条件语句和for循环,也有switch语句和goto跳转语句,但不支持传统的三元运算符。 4. 函数与方法:在Go语言中,函数是一等公民,可以作为参数传递给其他函数,也...
流程控制语句,例如条件判断(if-else)、循环(for)、开关(switch)和跳转(goto、break、continue、return),为Go程序提供了结构化执行流程的能力。这些语句对于控制程序的执行路径至关重要。 最后,Go语言的...
### Go语言学习之认识Golang #### 一、引言 Go语言,也称为Golang,是由Google设计的一种静态类型的编程语言。它以其简洁的语法、高效的并发模型以及丰富的标准库而闻名。本文将从Go语言的基础入手,通过具体代码...
Go语言中的控制结构包含多种语句,比如条件语句(if)、选择语句(switch)、循环语句(for)、Goto语句、Defer语句以及Fallthrough语句。这些语句提供了在不同场景下对程序流程进行控制的能力。 在并发方面,Go...
虽然不建议频繁使用,但Go语言还是提供了标签和GOTO语句。 #### 六、函数 **6.1 介绍** 函数是Go语言的核心组成部分之一。 **6.2 函数参数与返回值** Go语言中的函数可以接受多个参数并返回多个值。 **6.2.1 ...
在Go语言中,常见的控制流语句包括条件语句(if、switch)、循环语句(for、range)、跳转语句(break、continue、goto、return)等。 **8. 函数** 函数是Go语言中执行特定任务的可重用代码块。在Go语言中,函数...
Golang的流程控制包括if语句、switch语句、for循环、break语句、continue语句、goto语句等。 * if语句:用于条件判断。 * switch语句:用于多条件判断。 * for循环:用于循环执行某个操作。 * break语句:用于跳出...
- **控制结构**:讨论了流程控制语句,如if语句、for循环、switch-case结构,以及goto和break/continue语句。 - **数组、切片与映射**:深入分析了这些容器类型的特性和使用场景,特别是切片的动态特性及其在GO语言...
* 条件语句:if、switch * 循环语句:for、range * 跳转语句:break、continue、return、goto 四、Go语言的函数 * 函数的定义:func关键字 * 函数的调用:函数名(参数列表) * 函数的返回值:return语句 五、Go...