Go语言 流程控制和循环语句

本文主要内容为Go语言中流程控制语句和循环语句介绍及示例。

目录

流程控制语句

If条件语句

If使用规则

表达式语句

Switch语句

使用fallthrough

判断表达式结果

从命令行获取参数

For循环语句

简单循环

省略循环条件

For无限循环

For循环中的continue

新型for循环

忽略数组索引

总结


流程控制语句

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语言中流程控制语句和循环语句介绍及示例。

相关推荐
只有月亮知道9 分钟前
C++list常用接口和模拟实现
开发语言·c++
Epiphany心理16 分钟前
R语言使用ggplot2作图
开发语言·r语言
Eiceblue20 分钟前
.NET用C#在PDF文档中添加、删除和替换图片
开发语言·pdf·c#·.net·idea
勘察加熊人21 分钟前
c#和c++脚本解释器科学运算
开发语言·c++·c#
du fei28 分钟前
C# 窗体应用(.FET Framework) 与 visionpro 连接
开发语言·c#
小杨40435 分钟前
springboot框架项目实践应用十五(扩展sentinel区分来源)
spring boot·后端·spring cloud
二狗哈1 小时前
go游戏后端开发24:写完赢三张游戏
python·游戏·golang
FirstMrRight1 小时前
自动挡线程池OOM最佳实践
java·后端
Lccee1 小时前
Windows安装 PHP 8 和mysql9,win下使用phpcustom安装php8.4.5和mysql9
开发语言·php