Go语言08 循环语句

Go 语言循环语句

在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。

以下为大多编程语言循环程序的流程图:

Go 语言提供了以下几种类型循环处理语句:

循环类型描述
for 循环重复执行语句块
循环嵌套在 for 循环中嵌套一个或多个 for 循环

 

 

 

Go 语言 for 循环

for循环是一个循环控制结构,可以执行指定次数的循环。

语法

Go语言的For循环有3中形式,只有其中的一种使用分号。

和 C 语言的 for 一样:

for init; condition; post { }

和 C 的 while 一样:

for condition { }

和 C 的 for(;;) 一样:

for { }
  • init: 一般为赋值表达式,给控制变量赋初值;
  • condition: 关系表达式或逻辑表达式,循环控制条件;
  • post: 一般为赋值表达式,给控制变量增量或减量。

for语句执行过程如下:

  • ①先对表达式1赋初值;
  • ②判别赋值表达式 init 是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行 post,进入第二次循环,再判别 condition;否则判断 condition 的值为假,不满足条件,就终止for循环,执行循环体外语句。

for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。格式如下:

for key, value := range oldMap {
    newMap[key] = value
}

for语句语法流程如下图所示:

 实例:

//08loops.go
package main

import "fmt"

func main() {
	var b int = 15
	var a int
	numbers := [6]int{1, 2, 3, 5}
	//for循环
	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 位 x 的值 = %d\n", i, x)
	}
}

运行结果:

Go 语言循环嵌套

Go 语言允许用户在循环内使用循环。接下来我们将为大家介绍嵌套循环的使用。

语法

以下为 Go 语言嵌套循环的格式:

for [condition |  ( init; condition; increment ) | Range]
{
   for [condition |  ( init; condition; increment ) | Range]
   {
      statement(s);
   }
   statement(s);
}

实例

以下实例使用循环嵌套来输出 2 到 100 间的素数:

//08loops2.go
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)
		}
	}
}

运行结果:

循环控制语句

循环控制语句可以控制循环体内语句的执行过程。

GO 语言支持以下几种循环控制语句:

控制语句描述
break 语句经常用于中断当前 for 循环或跳出 switch 语句
continue 语句跳过当前循环的剩余语句,然后继续进行下一轮循环。
goto 语句将控制转移到被标记的语句。

 

 

 

 

Go 语言 break 语句

Go 语言中 break 语句用于以下两方面:

  1. 用于循环语句中跳出循环,并开始执行循环之后的语句。
  2. break在switch(开关语句)中在执行一条case后跳出语句的作用。

语法

break 语法格式如下:

break;

break 语句流程图如下:

 实例:

//08loops3.go
package main

import "fmt"

func main() {
	//定义局部变量
	var a int = 10
	//for 循环
	for a < 20 {
		fmt.Printf("a 的值为 : %d\n", a);
		a++
		if a > 15 {
			//使用 break 语句跳出循环
			break
		}
	}
}

运行结果:

Go 语言 continue 语句

Go 语言的 continue 语句 有点像 break 语句。但是 continue 不是跳出循环,而是跳过当前循环执行下一次循环语句。

for 循环中,执行 continue 语句会触发for增量语句的执行。

语法

continue 语法格式如下:

continue;

continue 语句流程图如下:

实例:

//08loops4.go
package main

import "fmt"

func main() {
	//定义局部变量
	var a int = 10
	//for 循环
	for a < 20 {
		if a == 15 {
			//跳过此次循环
			a = a + 1;
			continue
		}
		fmt.Printf("a 的值为 : %d\n", a)
		a++
	}
}

运行结果:

Go 语言 goto 语句

Go 语言的 goto 语句可以无条件地转移到过程中指定的行。

goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。

但是,在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。

语法

goto 语法格式如下:

goto label;
..
.
label: statement;

break 语句流程图如下:

实例

//08loops5.go
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++
	}
}

运行结果:

无限循环

如过循环中条件语句永远不为 false 则会进行无限循环,我们可以通过 for 循环语句中只设置一个条件表达式来执行无限循环:

//08loops6.go
package main

import "fmt"

func main() {
	for true {
		fmt.Printf("这是无限循环。\n");
	}
}

运行结果:

参考:https://www.w3cschool.cn/go/

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值