引言
在计算机编程中,循环是一种代码结构,它循环地重复执行一段代码,通常直到满足某个条件。在计算机编程中使用循环可以使类似的任务自动化并重复多次。想象一下,如果你有一个需要处理的文件列表,或者你想计算一篇文章的行数。你可以在代码中使用循环来解决这类问题。
在Go中,for
循环基于循环计数器或循环变量实现代码的重复执行。与其他具有多种循环结构(如while
、do
等)的编程语言不同,Go只有for
循环。这使你的代码更清晰,可读性更好,因为你不必担心实现相同循环结构的多种策略。在开发过程中,这种增强的可读性和减少的认知负荷也将使你的代码比其他语言更不容易出错。
在本教程中,您将学习Go的for
循环是如何工作的,包括其使用的三个主要变体。我们将从展示如何创建不同类型的for
循环开始,然后是如何遍历[Go中的顺序数据类型]我们将通过解释如何使用嵌套循环结束。
声明for子句和条件循环
为了适应各种用例,在Go中有三种不同的方法来创建for
循环,每种方法都有自己的功能。它们是创建一个包含Condition、ForClause或RangeClause的for
循环。在本节中,我们将解释如何声明和使用ForClause子句和条件变量。
让我们先看看如何在for子句中使用for
循环。
一个forclause循环被定义为有一个初始语句、一个条件和一个打印语句。语法如下:
for [ Initial Statement ] ; [ Condition ] ; [ Post Statement ] {
[Action]
}
为了解释上述组件的作用,让我们来看一个使用ForClause语法在指定范围内递增的for
循环:
for i := 0; i < 5; i++ {
fmt.Println(i)
}
让我们分解这个循环并识别每个部分。
循环的第一部分是i:= 0
。这是初始语句:
for i := 0; i < 5; i++ {
fmt.Println(i)
}
它说我们声明了一个名为i
的变量,并将初始值设置为0
。
接下来是条件:
for i := 0; i < 5; i++ {
fmt.Println(i)
}
在这个条件中,我们声明只要i
小于5
的值,循环就应该继续。
最后,我们编写打印语句:
for i := 0; i < 5; i++ {
fmt.Println(i)
}
在打印语句中,每次迭代时,我们使用i++
increment操作符将循环变量i
增加1。
运行这个程序,输出看起来像这样:
Output0
1
2
3
4
这个循环运行了5次。最初,它将i
设置为0
,然后检查i
是否小于5
。由于i
的值小于5
,循环被执行,fmt.Println(i)
的动作也被执行。循环结束后,i++
的打印语句被调用,i
的值加1。
**注意:**请记住,在编程中,我们倾向于从索引0开始,因此这就是为什么虽然打印了5个数字,但它们的范围是从0到4。
我们并不局限于从0开始或以特定值结束。我们可以将任何值赋给初始化语句,也可以在打印语句的任何值处停止。这允许我们创建任何想要循环的范围:
for i := 20; i < 25; i++ {
fmt.Println(i)
}
在这里,迭代从20(包含)到25(不包含),输出如下所示:
Output20
21
22
23
24
我们还可以使用打印语句以不同的值递增。这类似于其他语言中的step
:
首先,我们使用一个正数的打印语句:
for i := 0; i < 15; i += 3 {
fmt.Println(i)
}
在这个例子中,for
循环被设置为打印从0到15的数字,但递增3,因此只打印每3个数字,如下所示:
Output0
3
6
9
12
也可以将打印语句的参数设置为负数,以便向后迭代,但必须相应地调整初始化语句和条件参数:
for i := 100; i > 0; i -= 10 {
fmt.Println(i)
}
在这里,我们将i
设置为初始值100
,使用i < 0
的条件来终止于0
,然后打印语句使用-=
操作符将值减10。这个循环从100
开始,从0
结束,每次迭代递减10。我们可以从输出中看到这一点:
Output100
90
80