本文主要内容为Go语言中流程控制语句和循环语句介绍及示例。
目录
流程控制语句
Go 语言代码逻辑的控制
流程控制语句用于控制程序的执行顺序
这样你的程序就具备了逻辑结构
If条件语句
根据布尔值的表达式来决定选择哪个分支执行;
如果表达式的值为 true,则if分支被执行。
如果表达式的值为 false,则 else 分支被执行。
示例:
Go
package main
import "fmt"
func main() {
i := 10
if i > 10 {
fmt.Println("i>10")
} else {
fmt.Println("i<=10")
}
}
If使用规则
if后面的条件表达式不需要使用()
每个条件分支(if或者else)中的大括号是必须的
if紧跟的大括号{不能独占一行
else 前的大括号}也不能独占一行
在if......else 条件语句中还可以增加多个else if
增加更多的条件分支
表达式语句
示例如下:
Go
func main() {
if i := 6; i > 10 {
fmt.Println("i>10")
} else if i > 5 && 1 <= 10 {
fmt.Println("5<i<=10")
} else {
fmt.Println("i<=5")
}
}
Switch语句
如果有很多分支的话,选择switch会更方便。
switch 的case 从上到下逐一进行判断;
一旦满足条件,立即执行对应的分支并返回,其余分支不再做判断。
示例:
Go
func main() {
switch i := 6; {
case i > 10:
fmt.Println("i>10")
case i > 5 && i <= 10:
fmt.Println("5<i<=10")
default:
fmt.Println("i<=5")
}
}
注意:不需要写break。在go语言中switch case的每一条判断后,自动带break。
使用fallthrough
Go的switch,默认加上break了,不需要手动处理。
如果想向下穿透的话,那么需要加上关键字:fallthrough。
示例如下:
Go
switch j := 1; j{
case 1:
fmt.Println("1")
fallthrough
case 2:
fmt.Println("2")
default:
fmt.Println("没有匹配")
}
判断表达式结果
switch可用来判断表达式的结果,设置两数比较大小,判断结果布尔值。
示例如下:
Go
a := 2
b := 1
switch a > b {
case true:
fmt.Println("a>b")
case false:
fmt.Println("a<=b")
}
从命令行获取参数
从命令行中获取参数,并在switch中进行判断处理。
Go:os.Args 直接可以获取命令输入,是一个字符串切片
示例如下:
Go
func main() {
// os.Args ==> 直接可以获取命令输入,是一个字符串切片
cmds := os.Args
// os.Args[0] ==> 程序名字
// os.Args[1] ==> 第一个参数,以此类推
for key, cmd := range cmds {
fmt.Println("key:", key, ", cmd:", cmd)
}
if len(cmds) < 2 {
fmt.Println("请正确输入参数!")
return
}
switch cmds[1] {
case "hello":
fmt.Println("hello")
// fallthrough 会向下穿透
fallthrough
case "world":
fmt.Println("world")
}
}
执行:
bash
$ go run switch选择.go hello
key: 0 , cmd: C:\Users\18201\AppData\Local\Temp\go-build2460526206\b001\exe\switch选择.exe
key: 1 , cmd: hello
hello
world
For循环语句
简单循环
简单语句,一般用于for循环的初始化
for 循环的条件,表示 for 循环什么时候结束
更新语句,一般用于更新循环的变量
示例如下:
Go
package main
import "fmt"
func main() {
sum := 0
for i := 1; i <= 100; i++ {
sum += i
}
fmt.Println("总和:", sum)
}
省略循环条件
上面的for循环也可以省略循环条件
示例如下:
Go
sum := 0
i := 1
for i <= 100 {
sum += i
i++
}
fmt.Println("总和:", sum)
For无限循环
无条件的for循环,又叫for无限循环。
continue 可以跳出本次循环,继续执行下一个循环。
break 可以跳出整个 for 循环,哪怕 for 循环没有执行完,也会强制终止。
示例如下:
Go
sum := 0
i := 1
for {
sum += i
i++
if i > 100 {
break
}
}
fmt.Println("总和:", sum)
For循环中的continue
练习使用for循环中的continue
示例如下:
Go
sum := 0
for i := 1; i < 100; i++ {
if i%2 != 0 {
continue
}
sum += i
}
fmt.Println("总和:", sum)
新型for循环
大多数情况下使用的是 for range这种go语言的新型循环。
示例如下:
Go
arr := []string{"张三", "李四"}
for i, v := range arr {
fmt.Printf("数组索引%d, 对应值%s\n", i, v)
}
忽略数组索引
可使用_忽略掉数组索引。
示例如下:
Go
arr := []string{"张三", "李四"}
for _, v := range arr {
fmt.Printf("数组值%s\n", v)
}
总结
本文主要内容为Go语言中流程控制语句和循环语句介绍及示例。