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

相关推荐
齐 飞1 分钟前
MongoDB笔记01-概念与安装
前端·数据库·笔记·后端·mongodb
童先生15 分钟前
Go 项目中实现类似 Java Shiro 的权限控制中间件?
开发语言·go
lulu_gh_yu16 分钟前
数据结构之排序补充
c语言·开发语言·数据结构·c++·学习·算法·排序算法
LunarCod18 分钟前
WorkFlow源码剖析——Communicator之TCPServer(中)
后端·workflow·c/c++·网络框架·源码剖析·高性能高并发
Re.不晚39 分钟前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
老秦包你会42 分钟前
Qt第三课 ----------容器类控件
开发语言·qt
凤枭香44 分钟前
Python OpenCV 傅里叶变换
开发语言·图像处理·python·opencv
ULTRA??1 小时前
C加加中的结构化绑定(解包,折叠展开)
开发语言·c++
码农派大星。1 小时前
Spring Boot 配置文件
java·spring boot·后端
远望清一色1 小时前
基于MATLAB的实现垃圾分类Matlab源码
开发语言·matlab