文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Golang的循环语句和循环控制语句详解

2024-04-02 19:55

关注

一、循环语句

1. 普通循环

1)语法

for init; condition; post { }

2)举例

1.求1到10的数字之和。


package main

import "fmt"

func main() {
	count := 0
	for i := 0; i <= 10; i++ {
		count += i
	}
	fmt.Println("1到10的数字之和为:",count)
}

执行结果

1到10的数字之和为: 55

2.省略init和post:计算count小于10时自相加的值:


package main

import "fmt"

func main() {
	count := 1
	for ; count < 10; {
		count += count
	}
	fmt.Println("count小于10时自相加的值为:",count)
}

也可以省略;号:


package main

import "fmt"

func main() {
	count := 1
	for count < 10{  //省略分号
		count += count
	}
	fmt.Println("1到10的数字之和为:",count)
}

执行结果

count小于10时自相加的值为

3.Golang中没有while循环,可以通过省略condition来实现:


package main

import "fmt"

func main() {

	for { //省略condition
		fmt.Println("死循环")
	}
}

2. 循环嵌套


package main

import "fmt"

func main() {

	for { //省略condition
		fmt.Println("死循环")
	}
}

输出结果

(1到10的数字之和)x10: 550

3. range循环

用于对字符串、数组、切片等进行迭代输出元素:


package main

import "fmt"

func main() {
	strArray := []string{"a", "b","c"} //字符串数组
	for i,v := range strArray {
		fmt.Println(fmt.Sprintf("下标为:%d 值为:%s", i,v))
	}
}

输出结果

下标为:0 值为:a
下标为:1 值为:b
下标为:2 值为:c

二、循环控制语句

1.Break-中断(跳出)循环

1)中断(跳出)循环

写一个死循环,变量a会一直加1,当a的值大于3的时候则跳出循环:


package main

import "fmt"

func main() {
	a := 1
	for  {
		a++
		fmt.Printf("a 的值为 : %d\n", a)
		if a > 3 {
			
			fmt.Printf("跳出循环")
			break
		}
	}
}

输出结果

a 的值为 : 2
a 的值为 : 3
a 的值为 : 4
跳出循环

2)指定想中断(跳出)的循环(嵌套循环中使用)

使用标号,可以指定想跳出的循环。

下面是未使用标记,普通break中断循环,只会中断当前层循环,不会中断外层,外层打印的值始终为11:


package main

import "fmt"

func main() {
	for i := 1; i <= 2; i++ {
		fmt.Printf("外层循环i: %d\n", i)
		for j := 11; j <= 12; j++ {
			fmt.Printf("内层循环j: %d\n", j)
			break  //不使用标记,则只会中断该层循环,不会中断外层循环
		}
	}
}

输出结果

外层循环i: 1
内层循环j: 11
外层循环i: 2
内层循环j: 11

下面是使用标记,指定中断外层循环,等于只循环执行了一次:


package main

import "fmt"

func main() {
re:
	for i := 1; i <= 2; i++ {
		fmt.Printf("外层循环i: %d\n", i)
		for j := 11; j <= 12; j++ {
			fmt.Printf("内层循环j: %d\n", j)
			break re //使用标记,中断外层循环
		}
	}
}

输出结果

外层循环i: 1
内层循环j: 11

2.Continue-跳过当次循环

continue 是跳过当次循环执行后面的循环,而非中断循环


package main

import "fmt"

func main() {
	for a := 1; a < 5; a++ {
		if a == 3 { //a=3时执行continue跳过
			continue
		}
		//a=3时不会执行打印操作
		fmt.Printf("a 的值为 : %d\n", a)
	}
}

执行结果

a 的值为 : 1
a 的值为 : 2
a 的值为 : 4

在循环嵌套时,continue也可以指定跳过的循环,用法与break一样

3.goto-条件转移

goto 可以直接转移到指定代码处进行执行。

下面的代码,当a=3时,会跳出for循环,直接执行LOOP所在行的代码:


package main

import "fmt"

func main() {
	for a := 1; a < 5; a++ {
		if a == 3 { //a等于3;执行goto跳出
			goto LOOP
		}
		//a=3时不会执行打印操作
		fmt.Printf("a 的值为 : %d\n", a)
	}
	LOOP:fmt.Printf("a等于3;执行goto跳出!")
}

执行结果

a 的值为 : 1
a 的值为 : 2
a等于3;执行goto跳出!

不建议使用goto,容易造成代码结构混乱

到此这篇关于Golang的循环语句和循环控制语句的文章就介绍到这了,更多相关go循环语句和循环控制语句内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯