Go语言之循环语句

ZhDavis · · 1698 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

```灰子学技术: 原文链接:https://mp.weixin.qq.com/s/ITS8CjBup5ZmXPsdz30RQQ``` Go语言中的循环语句只有for,没有while和do/while这两种格式。 Go语言中的for语句的表达形式有三种实现方式: **1、基于计数器的实现。** 语法规则如下所示,这与C++的for循环实现模式基本类似,不过没有()。 ``` for i := 0; i<N; ++i { // 备注与C++的不同:1. 表达式不需要添加括号,2.{ 要与for语句在同一行 } ``` 例子: ``` package main import ( "fmt" ) func main() { for i := 0; i < 5; i++ { fmt.Println("Hello, i:",i) } fmt.Println("Hello, playground:") return } ``` Output: ``` Hello, i: 0 Hello, i: 1 Hello, i: 2 Hello, i: 3 Hello, i: 4 Hello, playground: ``` 实现无限循环: ``` // 方式一: for i := 0; ; i++ { fmt.Println("Hello, i:",i) } // 方式二: for ; ; { fmt.Println("Hello, playground:") } // 方式三: for { fmt.Println("Hello, playground:") } ``` **2、基于条件判断的实现。** 格式为:for 条件语句 { } 例子如下所示: ``` package main import ( "fmt" ) func main() { i := 0 for i < 5 { fmt.Println("Hello, playground:",i) i += 2 } return } Output: Hello, playground: 0 Hello, playground: 2 Hello, playground: 4 ``` 实现无限循环: ``` for true { // 备注:这里的实现方式与C++中的while类似。 fmt.Println("Hello, playground:") } ``` **3、基于for-range的实现。** ``` 格式为:for idx, value := range collection { } // 备注:这里的实现与C++中的foreach很类似。 ``` 例子为: ``` package main import ( "fmt" ) func main() { // 1. 数组的循环 strs := []string{"Hello", "World", "I", "Love", "You!"} for i, str := range strs { fmt.Println("Hello, Strs:", i, str) } // 2. map的循环 strMap := map[string]string { "a":"Hello", "b":"The", "c":"World", } for i, str := range strMap { fmt.Println("Hello, strMap:", i, str) } return } ``` Output: // 备注:从map的输出顺序来看,map并不能保证初始化的顺序和输出的顺序是一致的 ``` Hello, Strs: 0 Hello Hello, Strs: 1 World Hello, Strs: 2 I Hello, Strs: 3 Love Hello, Strs: 4 You! Hello, strMap: b The Hello, strMap: c World Hello, strMap: a Hello ``` 灰子学技术,欢迎关注,点评,相互学习。 ![image.png](https://static.studygolang.com/190908/c117f7cb8b843d58ca186fc96cfa3bb2.png)

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1698 次点击  
加入收藏 微博
被以下专栏收入,发现更多相似内容
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传