【golang学习总结】6 golang流程控制

本文介绍SpringBoot相关内容。和【跨考菌】一起加油吧~

在这里插入图片描述

如果你有收获,记得帮博主一键三连哦😊


在程序中, 程序运行的流程控制决定程序是如何执行的, 是我们必须掌握的, 主要有三大流程控制语句。

  1. 顺序控制
  2. 分支控制
  3. 循环控制

1 顺序控制

程序从上到下逐行地执行, 中间没有任何判断和跳转。
在这里插入图片描述
在这里插入图片描述
顺序控制比较简单,没啥需要说的。

2 分支控制

分支控制就是让程序有选择执行。 有下面三种形式

  1. 单分支
  2. 双分支
  3. 多分支

2.1 单分支

在这里插入图片描述
在这里插入图片描述
注意,这里可以不要括号把条件包裹起来。
在这里插入图片描述
单分支细节
在golang的if中,可以直接定义一个变量。例如:
在这里插入图片描述

2.2 双分支控制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.1 注意事项

  • 多分支控制时,if-else都必须有{}
    在这里插入图片描述
  • else不能换行
    在这里插入图片描述
  • if中的条件,建议不要括号
    在这里插入图片描述

2.3 多分支控制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3.1 案例一:计算一元二次方程的解

在这里插入图片描述

3 switch分支控制

3.1 switch介绍

  1. switch 语句用于基于不同条件执行不同动作, 每一个 case 分支都是唯一的, 从上到下逐一测试, 直到匹配为止。
  2. 匹配项后面也不需要再加 break

语法
在这里插入图片描述
在这里插入图片描述
对上图的说明和总结

  1. switch 的执行的流程是, 先执行表达式, 得到值, 然后和 case 的表达式进行比较, 如果相等,
    就匹配到, 然后执行对应的 case 的语句块, 然后退出 switch 控制。(不需要自己手动添加break)
  2. 如果 switch 的表达式的值没有和任何的 case 的表达式匹配成功, 则执行 default 的语句块。 执行
    后退出 switch 的控制.
  3. golang 的 case 后的表达式可以有多个, 使用 逗号 间隔.
  4. golang 中的 case 语句块不需要写 break , 因为默认会有,即在默认情况下, 当程序执行完 case 语
    句块后, 就直接退出该 switch 控制结构。

3.2 简单案例

在这里插入图片描述

3.3 switch 的使用的注意事项和细节

  1. case/switch 后是一个表达式( 即: 常量值、 变量、 一个有返回值的函数等都可以)
    在这里插入图片描述
    在这里插入图片描述
  2. case 后的各个表达式的值的数据类型, 必须和 switch 的表达式数据类型一致
    在这里插入图片描述
  3. case 后面可以带多个表达式, 使用逗号间隔。 比如 case 表达式 1, 表达式 2 …
    在这里插入图片描述
  4. case 后面的表达式如果是常量值(字面量), 则要求不能重复
    在这里插入图片描述
  5. case 后面不需要带 break , 程序匹配到一个 case 后就会执行对应的代码块, 然后退出 switch, 如果一个都匹配不到, 则执行 default
  6. default 语句不是必须的.
  7. switch 后也可以不带表达式, 类似 if --else 分支来使用。 【案例演示】
    在这里插入图片描述
  8. switch 后也可以直接声明/定义一个变量, 分号结束, 不推荐。 【案例演示】
    在这里插入图片描述
  9. switch 穿透-fallthrough , 如果在 case 语句块后增加 fallthrough ,则会继续执行下一个 case, 也叫 switch 穿透
    在这里插入图片描述
  10. Type Switch: switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实际指向的
    变量类型
    【还没有学 interface, 先体验一把】
    在这里插入图片描述

4 for循环控制

4.1 语法格式

格式1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

格式2
在这里插入图片描述
在这里插入图片描述

格式3
在这里插入图片描述
在这里插入图片描述

格式4
Golang 提供 for-range 的方式, 可以方便遍历字符串和数组(注: 数组的遍历, 我们放到讲数组的时候再讲解) , 案例说明如何遍历字符串。

字符串遍历方式1-传统方式
在这里插入图片描述
字符串遍历方式 2-for - range
在这里插入图片描述

4.2 细节讨论

如果我们的字符串含有中文, 那么传统的遍历字符串方式, 就是错误, 会出现乱码。 原因是传统的对字符串的遍历是按照字节来遍历, 而一个汉字在 utf8 编码是对应 3 个字节。
如何解决 需要要将 str 转成 []rune 切片.=> 体验一把
在这里插入图片描述
对应 for-range 遍历方式而言, 是按照字符方式遍历。 因此如果有字符串有中文, 也是 ok

Go 语言没有 while 和 do…while 语法, 这一点需要注意一下, 如果我们需要使用类似其它语言(比如 java / c 的 while 和 do…while ), 可以通过 for 循环来实现其使用效果。

5 控制跳转break和continue

5.1 break

break 语句用于终止某个语句块的执行, 用于中断当前 for 循环或跳出 switch 语句。

使用细节

  1. break 语句出现在多层嵌套的语句块中时, 可以通过标签指明要终止的是哪一层语句块
  2. 看一个案例
    在这里插入图片描述
  3. 对上面案例的说明
    (1) break 默认会跳出最近的 for 循环
    (2) break 后面可以指定标签, 跳出标签对应的 for 循环

使用案例

随机生成1-100的一个数,直到生成了99这个数,看看你一共用了几次。

golang中获取随机数的知识

我们为了生成一个随机数,还需要个rand设置一个种子.
time.Now().Unix() : 返回一个从1970:01:01000秒到现在的秒数
rand.Seed(time.Now().Unix())
如何随机的生成1-100整数
n := rand.Intn(100) + 1 // [1 101)

代码实现:

var count int = 0
for {
	rand.Seed(time.Now().UnixNano())
	n := rand.Intn(100) + 1
	fmt.Println("n=", n)
	count++
	if (n == 99) {
		break //表示跳出for循环
	}
}

fmt.Println("生成 99 一共使用了 ", count)

5.2 continue

continue 语句用于结束本次循环, 继续执行下一次循环
continue 语句出现在多层嵌套的循环语句体中时, 可以通过标签指明要跳过的是哪一层循环 , 这个和前面的 break 标签的使用的规则一样。

在这里插入图片描述

简单案例

在这里插入图片描述

5.3 控制跳转语句-goto

goto介绍

  1. Go 语言的 goto 语句可以无条件地转移到程序中指定的行
  2. goto 语句通常与条件语句配合使用。 可用来实现条件转移, 跳出循环体等功能。
  3. 在 Go 程序设计中一般不主张使用 goto 语句, 以免造成程序流程的混乱, 使理解和调试程序
    都产生困难。

语法介绍

在这里插入图片描述
在这里插入图片描述

简单案例

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值