版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/boyun58/article/details/88827122
Go 语言提供多种类型循环处理语句
循环类型 | 描述 |
---|---|
for 循环 | 重复执行指定次数语句块 |
循环嵌套 | 在 for 循环中嵌套一个或多个 for 循环 |
Go 语言 for 循环
语法
for init; condition; post { }
- init: 一般为赋值表达式,给控制变量赋初值;
- condition: 关系表达式或逻辑表达式,循环控制条件;
- post: 一般为赋值表达式,给控制变量增量或减量。
例如:
package main
import "fmt"
func main(){
var b int = 10
var a int
numbers := [6]int{1, 2, 3, 5}
for a := 0; a < 10; a++ {
fmt.Printf("a 为%d\n", a)
}
for a < b {
a++
fmt.Printf("a 为%d\n", a)
}
for i,x:= range numbers {
fmt.Printf("索引 %d 的值为 %d\n", i, x)
}
}
---------------------------------------------
a 为0
a 为1
a 为2
a 为3
a 为4
a 为5
a 为6
a 为7
a 为8
a 为9
a 为1
a 为2
a 为3
a 为4
a 为5
a 为6
a 为7
a 为8
a 为9
a 为10
索引 0 的值为 1
索引 1 的值为 2
索引 2 的值为 3
索引 3 的值为 5
索引 4 的值为 0
索引 5 的值为 0
Go 语言循环嵌套
Go 语言允许在循环内使用循环
语法
for [condition | ( init; condition; increment ) | Range]
{
for [condition | ( init; condition; increment ) | Range]
{
statement(s);
}
statement(s);
}
例如
package main
import "fmt"
func main(){
var i, j int
for i=2; i<100; i++ {
for j=2; j <= (i/j); j++{
if (i%j==0){
break
}
}
if (j > (i/j)) {
fmt.Printf("%d 素数\n", i);
}
}
}
----------------------------------------------------------
2 素数
3 素数
5 素数
7 素数
11 素数
13 素数
17 素数
19 素数
23 素数
29 素数
31 素数
37 素数
41 素数
43 素数
47 素数
53 素数
59 素数
61 素数
67 素数
71 素数
73 素数
79 素数
83 素数
89 素数
97 素数
循环控制语句
控制循环体内语句的执行流程
控制语句 | 描述 |
---|---|
break | 经常用于中断当前 for 循环或跳出 switch 语句 |
continue | 跳过当前循环的剩余语句,然后继续进行下一轮循环。 |
goto | 将控制转移到被标记的语句 |
**Go 语言 break **
- 用于循环语句中跳出循环,并开始执行循环之后的语句。
- break在switch(开关语句)中在执行一条case后跳出语句的作用。
例如
package main
import "fmt"
func main(){
var a int = 10
for a < 20 {
fmt.Printf("a 为%d", a);
a++
if a>15{
break;
}
}
}
-----------------------
a 为10a 为11a 为12a 为13a 为14a 为15
**Go 语言 continue **
Go 语言的 continue 语句 有点像 break 语句。但是 continue 不是跳出循环,而是跳过当前循环执行下一次循环语句。
for 循环中,执行 continue 语句会触发for增量语句的执行。
package main
import "fmt"
func main() {
var a int = 10
for a < 20 {
if a == 15 {
a = a + 1;
continue;
}
fmt.Printf("a 的值为 : %d\n", a);
a++;
}
}
--------------------------------
a 的值为 : 10
a 的值为 : 11
a 的值为 : 12
a 的值为 : 13
a 的值为 : 14
a 的值为 : 16
a 的值为 : 17
a 的值为 : 18
a 的值为 : 19
**Go 语言 goto **
Go 语言的 goto 语句可以无条件地转移到过程中指定的行。
goto 语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。
package main
import "fmt"
func main() {
var a int = 10
LOOP: for a < 20 {
if a == 15 {
/* 跳过迭代 */
a = a + 1
goto LOOP
}
fmt.Printf("a的值为 : %d\n", a)
a++
}
}
----------------------------------------------
a的值为 : 10
a的值为 : 11
a的值为 : 12
a的值为 : 13
a的值为 : 14
a的值为 : 16
a的值为 : 17
a的值为 : 18
a的值为 : 19