GO语言学习笔记(八):GO语言流程控制之循环语句

分类:
GO
标签:
基础
学习笔记
作者:
何鑫
创作时间:
2019/07/27 20:30:02

摘要:循环语句是我们在实际变成中经常使用的语句

GO语言中的循环语句

我们常用的循环语句关键词包括for,while等,而在GO语言中,循环语句就只有一个关键词:for。

我们这里学习for的两种使用方法。

第一种:for 初始化子语句;条件子语句,后置子语句

我们先来看一个例子:

package main

import "fmt"

func main() {
   for a := 0; a < 5; a++ {
      fmt.Println(a)
   }
}

可以看到,除了少了括号,其实跟Java等语言的for循环差不多。

该循环语句由for和三个子语句组成:

a := 0    初始化子语句,循环开始时执行,仅执行一次

a < 5     条件子语句,for循环靠判断它来决定是否跳出循环

a++       后置子语句,一次循环完成后执行的操作

那么在GO语言中如何实现无限循环呢

package main

import "fmt"

func main() {
   for {
      fmt.Println(1)
   }
}

一个for就完事了,它实际是for ; ; 的简写。

第二种 range子语句

range类似于一个迭代器,可以用于遍历字符串,数组,切片,字典等。

例如遍历字符串:

package main

import "fmt"

func main() {
   a := "abc123"
   for index, char := range a {
      fmt.Println(index, char)
   }

}

运行会输出:

0 97

1 98

2 99

3 49

4 50

5 51

可以看到range子语句返回两个值,一个是索引,一个是字符对应的Unicode码,我们可以使用Printf函数来格式化输出:

package main

import "fmt"

func main() {
   a := "abc123"
   for index, char := range a {
      fmt.Printf("索引是%d,值是%c\n", index, char)
   }

}

输出:

索引是0,值是a

索引是1,值是b

索引是2,值是c

索引是3,值是1

索引是4,值是2

索引是5,值是3

如果我们不想要index,可以直接用_来表示忽略这个值,例如for _, char := range a

忽略第二个值:for index := range a

忽略所有值:for range a

发表评论

温馨提示: 评论先审核后发布, 请勿发表不良言论

所有评论