Go 语言循环语句

版权声明:本文为博主原创文章,未经博主允许不得转载。 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

猜你喜欢

转载自blog.csdn.net/boyun58/article/details/88827122