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

目录
  • 一、循环语句
    • 1. 普通循环
      • 1)语法
      • 2)举例
    • 2. 循环嵌套
    • 3. range循环
  • 二、循环控制语句
    • 1.Break-中断(跳出)循环
      • 1)中断(跳出)循环
      • 2)指定想中断(跳出)的循环(嵌套循环中使用)
    • 2.Continue-跳过当次循环
    • 3.goto-条件转移

一、循环语句

1. 普通循环

1)语法

for init; condition; post { }

  • init(可选):给控制变量赋初值;
  • condition(可选):控制条件(不填的时候等于while True);
  • 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 {
			/* 使用 break 语句跳出循环 */
			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循环语句和循环控制语句内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 手把手带你走进Go语言之循环语句

    目录 概述 循环语句 方法一 方法二 方法三 break 关键字 continue 关键字 goto 关键字 [Golang]✔️走进 Go 语言✔️ 第六课 条件表达式 概述循环语句方法一方法二方法三break 关键字continue 关键字goto 关键字 概述 Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. (第 6 课) 循环语句 使用好循环语句可以帮助我们提升代码的简洁性, 提高代码效率. 方法一 格式: for init; condi

  • Go语言流程控制之goto语句与无限循环

    goto语句 在Go编程语言中的goto语句提供无条件跳转从跳转到标记声明的功能. 注意:使用goto语句是高度劝阻的在任何编程语言,因为它使得难以跟踪程序的控制流程,使程序难以理解,难以修改.使用一个goto任何程序可以改写,以便它不需要goto. 语法 转到goto语句的语法如下: 复制代码 代码如下: goto label; .. . label: statement; 在这里,标签(label)可以是除去关键字任何纯文本,它可以在任何地方设置在Go程序的上方或下方,以使用goto语句.

  • golang语言中for循环语句用法实例

    本文实例讲述了golang语言中for循环语句用法.分享给大家供大家参考.具体分析如下: for循环是用来遍历数组或数字的.用for循环遍历字符串时,也有 byte 和 rune 两种方式.第一种为byte,第二种rune. 复制代码 代码如下: package main import ( "fmt" ) func main() { s := "abc汉字" for i := 0; i < len(s); i++ { fmt.Printf("%c,&

  • Go语言中循环语句使用的示例详解

    目录 一.概述 1. 循环控制语句 2. 无限循环 二.Go 语言 for 循环 1. 语法 2. for语句执行过程 3. 示例 4. For-each range 循环 三.循环嵌套 1. 语法 2. 示例 四.break 语句 1. 语法 2. 示例 五. continue 语句 1. 语法 2. 示例 六.goto 语句 1. 语法 2. 示例 一.概述 在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句. 循环程序的流程图: Go 语言提供了以下几种类型循环

  • C#的循环语句集锦及案例详解

    使用循环好处多多-使用循环可以使程序实现判断逻辑,有了循环可以利用计算机强大的计算功能,下面我列举出C#中的循环语句,代码如下: 有了循环结构,有利于利用计算 机强大的计算能力 有了循环结构,有利于利用计算 机强大的计算能力 C#中循环语句:while.for.foreach 1.while循环 static void Main(string[] args) { int[] hs = { 1,2,3,4,5,6,7,8,9}; int ligh = hs.Length; while (ligh

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

    目录 一.循环语句 1. 普通循环 1)语法 2)举例 2. 循环嵌套 3. range循环 二.循环控制语句 1.Break-中断(跳出)循环 1)中断(跳出)循环 2)指定想中断(跳出)的循环(嵌套循环中使用) 2.Continue-跳过当次循环 3.goto-条件转移 一.循环语句 1. 普通循环 1)语法 for init; condition; post { } init(可选):给控制变量赋初值: condition(可选):控制条件(不填的时候等于while True): post

  • python中for循环变量作用域及用法详解

    在讲这个话题前,首先我们来看一道题: 代码1: def foo(): return [lambda x: x**i for i in range(1,5,2)] print([f(3) for f in foo()]) 伙伴们,你们认为这里产生的结果是什么呢?我们再来看下这题的变体: 代码:2 def foo(): functions=[] for i in range(1,5,2): def inside_fun(x): return x ** i functions.append(insid

  • Python中断多重循环的几种方式详解

    这篇文章主要介绍了Python中断多重循环的几种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 I. 跳出单循环 不管是什么编程语言,都有可能会有跳出循环的需求,比如枚举时,找到一个满足条件的数就终止.跳出单循环是很简单的,比如 for i in range(10): if i > 5: print i break 然而,我们有时候会需要跳出多重循环,而break只能够跳出一层循环,比如 for i in range(10): for

  • Java for循环常见优化方法案例详解

    目录 方法一:最常规的不加思考的写法 方法二:数组长度提取出来 方法三:数组长度提取出来 方法四:采用倒序的写法 方法五:Iterator 遍历 方法六:jdk1.5后的写法 方法七:循环嵌套外小内大原则 方法八:循环嵌套提取不需要循环的逻辑 方法九:异常处理写在循环外面 前言 我们都经常使用一些循环耗时计算的操作,特别是for循环,它是一种重复计算的操作,如果处理不好,耗时就比较大,如果处理书写得当将大大提高效率,下面总结几条for循环的常见优化方式. 首先,我们初始化一个集合 list,如下

  • SpringBoot循环依赖之问题复现详解

    目录 简介 问题复现 1.构造器注入 2.Feild注入多例(@AutoWired) 3.Setter注入多例(@AutoWired) 解决方案 简介 说明 本文介绍Spring的循环依赖什么时候会出现以及如何解决循环依赖. 循环依赖场景 1.单例field的循环依赖       (采用三级缓存+提前暴露对象的方法解决) 2.构造器的循环依赖          (无法解决循环依赖问题) 3.多例field的循环依赖       (无法解决循环依赖问题) 对于多例的bean,Spring不缓存"p

  • Spring循环依赖的解决方法详解

    目录 什么是循环依赖: Spring实例Bean的本质 循环依赖主要场景 什么情况下循环依赖可以被解决 解决方式 说明:spring如何解决循环依赖,是面试中经常问到的题目,今天我们就来分享一下spring是如何解决循环依赖问题的. 什么是循环依赖: 我们先来看看官方文档的说法: 通俗来讲,就是A依赖B或者B依赖A,或者C依赖自己本身,或是三个以上,例如A依赖B,B依赖C,C又依赖A.如下图: Spring实例Bean的本质 Spring在实例化一个bean的时候,是首先递归的实例化其所依赖的所

  • Unity实现卡片循环滚动效果的示例详解

    目录 简介 定义卡片的摆放规则 调整卡片的层级关系 调整卡片的尺寸大小 动态调整位置.层级和大小 移动动画 按钮事件 简介 功能需求如图所示,点击下一个按钮,所有卡片向右滚动,其中最后一张需要变更为最前面的一张,点击上一个按钮,所有卡片向左滚动,最前面的一张需要变更为最后一张,实现循环滚动效果. 最中间的一张表示当前选中项,变更为选中项的滚动过程中,需要逐渐放大到指定值,相反则需要恢复到默认大小. 实现思路: 定义卡片的摆放规则: 调整卡片的层级关系: 调整卡片的尺寸大小: 卡片向指定方向移动,

  • python学习 流程控制语句详解

    ###################### 分支语句 python3.5 ################ #代码的缩进格式很重要 建议4个空格来控制 #根据逻辑值(True,Flase)判断程序的运行方向 # Ture:表示非空的量(String,tuple元组 .list.set.dictonary),所有非零的数字 # False:0,None .空的量 #逻辑表达式 可以包含 逻辑运算符 and or not if: ##################################

随机推荐