go中的循环语句(附代码实例)

64 阅读1分钟

Go的最大特点之一是给你更少的选择。

我们有一个循环语句。for

我们像这样使用它:

for i := 0; i < 10; i++ {
	fmt.Println(i)
}

我们首先初始化一个循环变量,然后设置我们为每个迭代检查的条件,以决定循环是否应该结束,最后在每个迭代结束时执行post语句,在本例中,它增加了i

i++ 递增 变量。i

< 运算符用于比较i 和数字10 ,并返回truefalse ,决定是否应该执行循环体。

我们不需要在这个块周围加上括号,这与其他语言如C或JavaScript不同。

其他语言提供了不同种类的循环结构,但Go只有这一种。我们可以模拟一个while 循环,如果你熟悉有这种循环的语言,就像这样:

i := 0

for i < 10 {
	fmt.Println(i)
  i++
}

我们也可以完全省略条件,在我们想要的时候使用break 来结束循环:

i := 0

for {
	fmt.Println(i)

	if i < 10 {
		break
	}

  i++
}

我在循环体内部使用了一个if 语句,但我们还没有看到条件式!我们接下来会做。我们接下来会做这个。

现在我想介绍的一件事是range

我们可以使用for ,用这种语法来迭代一个数组:

numbers := []int{1, 2, 3}

for i, num := range numbers {
	fmt.Printf("%d: %d\n", i, num)
}

//0: 1
//1: 2
//2: 3

注意:我使用了fmt.Printf() ,它允许我们使用动词 %d (表示十进制整数)和\n (表示添加行结束符)将任何值打印到终端。

当你不需要使用索引时,使用这种语法很常见:

for _, num := range numbers {
  //...
}

使用特殊的_ 字符,意思是 "忽略这个",以避免Go编译器引发错误,说 "你没有使用i 这个变量!"。