流程控制(if/else,for/range)

if

if条件判断语句的语法概括起来就是:如果满足条件就做某事,否则做另一件事。

func testIf() {
num := 10
if num < 10 {
fmt.Println(`less than 10`)
} else if num == 10 {
fmt.Println(`equal 10`)
} else {
fmt.Println(`more than 10`)
}
}

switch

switch语句用来解决很多if else的问题,语法如下

switch sExpr {
case expr1:
some instructions
case expr2:
some other instructions
case expr3:
some other instructions
default:
other code
}

sExpr和expr1、expr2、expr3的类型必须一致。sExpr表达式不必是常量或整数,执行的过程从上至下,直到找到匹配项;而如果switch没有表达式,它会匹配true。witch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case。

func testSwitch() {
i := 12
switch {
case i < 12:
fmt.Println("< 12")
case i == 12:
fmt.Println("= 12")
default:
fmt.Println("> 12")
}
}

for

循环操作,既可以用来循环读取数据,又可以当作while来控制逻辑,还能迭代操作。它的语法如下:

for expression1; expression2; expression3 {
//...
} expression1在循环开始之前调用,
expression2是用来条件判断,
expression3在每轮循环结束之时调用。

示例:

func testFor() {
sum := 0
for num := 1; num < 10; num++ {
sum += num
}
fmt.Println(sum)
}

循环控制语句

循环控制语句可以控制循环体内语句的执行过程。

  • break 语句 经常用于中断当前 for 循环或跳出 switch 语句
  • continue 语句 跳过当前循环的剩余语句,然后继续进行下一轮循环。
for i := 1; i < 10; i++ {
if i == 5 {
continue
}
if i == 8 {
break
}
fmt.Println(i)
}

range 关键字

range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对的 key 值

	arrs := [5]int{1, 2, 3, 4, 5}
for index, item := range arrs {
fmt.Println(index, item)
} slices := []string{"a", "b", "c"}
for index, item := range slices {
fmt.Println(index, item)
} maps := map[string]int{"a": 1, "b": 2, "c": 3}
for key, val := range maps {
fmt.Println(key, val)
}

最新文章

  1. ABP源码分析三十九:ABP.Hangfire
  2. php编译 :virtual memory exhausted: Cannot allocate memory
  3. 分析ffmpeg解析ts流信息的源码
  4. nylg 小M的因子和
  5. &lt;六&gt; jQuery 获得内容和属性
  6. 2016年如何选择 Linux 发行版
  7. latex命令替换之\newcommand
  8. aws上redhat安装redis服务记
  9. 改用Struts2.5 出现404 错误
  10. UML 类图口诀
  11. holer实现外网访问内网数据库
  12. 解决github下载速度慢的问题 ,亲测有效
  13. Heartbleed心脏出血漏洞原理分析
  14. poj1195
  15. VMware Linux 共享文件夹 虚拟机无共享文件解决方法
  16. ElasticSearch的概念解析
  17. 剑指offer面试题12-打印1到最大的n位数
  18. maven项目install时候一直报错,检查Maven-javadoc-plugin声明错误(Java 8 配置Maven-javadoc-plugin)或者是:警告: @throws 没有说明
  19. Oracle 日志挖掘(LogMiner)使用
  20. 【排序】冒泡排序,C++实现

热门文章

  1. Struts2学习-拦截器
  2. GitLab 数据备份和恢复
  3. 团队合作之Scrum
  4. python UI自动化实战记录一:测试需求与测试思路
  5. IOS PushMeBaby(是一款用来测试ANPs的开源Mac项目)
  6. POJ-1836 Alignment---LIS
  7. IOS开发之——画图(CGContext)
  8. 2018.10.10 MAC 的Launchpad图标改变大小的设置
  9. cross entropy与logistic regression
  10. Linux 安装ngnix