内容简介:Hi,大家好,我是明哥。在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。我的在线博客:
Hi,大家好,我是明哥。
在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。
我的在线博客: http://golang.iswbm.com
我的 Github:github.com/iswbm/GolangCodingTime
Go里的流程控制方法还是挺丰富,整理了下有如下这么多种:
- if - else 条件语句
- switch - case 选择语句
- for - range 循环语句
- goto 无条件跳转语句
- defer 延迟执行
上一篇讲了switch - case 选择语句,今天先来讲讲 for 循环语句。
0. 语句模型
这是 for 循环的基本模型。
for [condition | ( init; condition; increment ) | Range] { statement(s); }
可以看到 for 后面,可以接三种类型的表达式。
- 接一个条件表达式
- 接三个表达式
- 接一个 range 表达式
但其实还有第四种
- 不接表达式
1. 接一个条件表达式
这个例子会打印 1 到 5 的数值。
a := 1 for a <= 5 { fmt.Println(a) a ++ }
输出如下
2. 接三个表达式
for 后面,紧接着三个表达式,使用 ;
分隔。
这三个表达式,各有各的用途
- 第一个表达式:初始化控制变量,在整个循环生命周期内,只运行一次;
- 第二个表达式:设置循环控制条件,当返回true,继续循环,返回false,结束循环;
- 第三个表达式:每次循完开始(除第一次)时,给控制变量增量或减量。
这边的例子和上面的例子,是等价的。
import "fmt" func main() { for i := 1; i <= 5; i++ { fmt.Println(i) } }
输出如下
2. 不接表达式:无限循环
在 Go 语言中,没有 while 循环,如果要实现无限循环,也完全可以 for 来实现。
当你不加任何的判断条件时, 就相当于你每次的判断都为 true,程序就会一直处于运行状态,但是一般我们并不会让程序处于死循环,在满足一定的条件下,可以使用关键字 break
退出循环体,也可以使用 continue
直接跳到下一循环。
下面两种写法都是无限循环的写法。
for { 代码块 } // 等价于 for ;; { 代码块 }
举个例子
import "fmt" func main() { var i int = 1 for { if i > 5 { break } fmt.Printf("hello, %d\n", i) i++ } }
输出如下
hello, 1 hello, 2 hello, 3 hello, 4 hello, 5
3. 接 for-range 语句
遍历一个可迭代对象,是一个很常用的操作。在 Go 可以使用 for-range 的方式来实现。
range 后可接数组、切片,字符串等
由于 range 会返回两个值:索引和数据,若你后面的代码用不到索引,需要使用 _
表示 。
import "fmt" func main() { myarr := [...]string{"world", "python", "go"} for _, item := range myarr { fmt.Printf("hello, %s\n", item) } }
输出如下
hello, world hello, python hello, go
系列导读
24. 超详细解读 Go Modules 前世今生及入门使用
欢迎关注我们的微信公众号,每天学习Go知识
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Go语言学习笔记03--流程控制循环语句与函数
- Go 语言函数式编程系列教程(十六) —— 流程控制篇:循环语句
- Golang 源码学习调度逻辑(三):工作线程的执行流程与调度循环
- 008.Python循环for循环
- 006.Python循环语句while循环
- 007.Python循环语句while循环嵌套
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
无懈可击的Web设计
【美】Dan Cederholm / 马跃 / 清华大学出版社 / 2012-5 / 39.00元
本书将指导您采用标准设计策略来满足以各种方式浏览网页的各类用户的需要。每章首先列举一个沿用传统HTML技术的实例,然后指出该实例的局限性,并利用XHTML和CSS对其进行重构。从中您将学会如何用简洁高效的HTML标记和CSS来取代臃肿的代码,从而创建加载速度极快、能供所有用户使用的网站。本书最后将前面各章讨论的所有页面组件珠联璧合地结合在一起,制作了一个页面模板。这一版全面润色和更新了上一版本,介......一起来看看 《无懈可击的Web设计》 这本书的介绍吧!
RGB CMYK 转换工具
RGB CMYK 互转工具
HSV CMYK 转换工具
HSV CMYK互换工具