Go流程控制

【Go】Go语言中的流程控制语句 在编程中,流程控制是决定程序如何执行的关键部分。Go语言作为一种静态类型、编译型语言,其流程控制机制与其他高级语言类似,但也有一些独特之处。本文将详细探讨Go语言中的流程控制语句,包括顺序控制、条件控制(if、if-else、if-else if-else)、循环控制(for循环、for-range循环)、分支控制(switch语句)、以及跳转控制(goto、break、continue)。本文通过实际案例,我们将深入理解这些控制语句的使用方法和应用场景。 阅读详情

流程控制的引入

【1】流程控制的作用:
流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。

【2】控制语句的分类:
控制语句分为三类:顺序、选择和循环。
“顺序结构”代表“先执行a,再执行b”的逻辑。
“条件判断结构”代表“如果…,则…”的逻辑。
“循环结构”代表“如果…,则再继续…”的逻辑。
三种流程控制语句就能表示所有的事情!不信,你可以试试拆分你遇到的各种事情。这三种基本逻辑结构是相互支撑的,它们共同构成了算法的基本结构,无论怎样复杂的逻辑结构,都可以通过它们来表达。所以任何一种高级语言都具备上述两种结构。
本章是大家真正进入编程界的“门票”。

【3】流程控制的流程:
在这里插入图片描述

分支结构

if分支

单分支

【1】基本语法
在这里插入图片描述

当条件表达式为true时,就会执行得的代码。
PS:条件表达式左右的()可以不写,也建议不写
PS:if和表达式中间,一定要有空格
PS:在Golang中,()是必须有的,就算你只写一行代码。

【2】代码练习:

package main
import "fmt"
func main(){
	//实现功能:如果口罩的库存小于30个,提示:库存不足:
	//var count int=100
    //单分支:
	// if count < 30 {
    //   fmt.Println("对不起,口罩存量不足")
	// }

	//if后面表达式,返回结果一定是true或者false,
	//如果返回结果为true的话,那么{}中的代码就会执行
	//如果返回结果为false的话,那么{}中的代码就不会执行
	//if后面一定要有空格,和条件表达式分隔开来
	//{}一定不能省略
	//条件表达式左右的()是建议省略的
	//在golang里,if后面可以并列的加入变量的定义:

	if count := 20;count < 30 {
		fmt.Println("对不起,口罩存量不足")
	}
}

在这里插入图片描述

双分支

【1】基本语法
在这里插入图片描述

当条件表达式成立,即执行逻辑代码1,否则执行逻辑代码2。{}也是必须有的。

PS:下面的格式是错误的
在这里插入图片描述

PS:空格加上,美观规范

【2】代码练习:

package main
import "fmt"
func main(){
	//实现功能:如果口罩的库存小于30个,提示:库存不足,否则提示:库存充足
	//定义口罩的数量:
	var count int =70
	if count < 30 { //这个条件表达式返回的是true的话,后面{}执行了
		fmt.Println("库存不足")
	} else{//count>=30
		fmt.Println("库存充足")
	}

	//双分支一定会二选一走其中一个分支。
}

在这里插入图片描述

多分支

【1】基本语法
在这里插入图片描述

【2】代码练习:

package main
import "fmt"
func main(){
	//实现功能:根据给出的学生分数,判断学生的等级:
	//  >=90  -----A
	//  >=80  -----B
	//  >=70  -----C
	//  >=60  -----D
	//  <60   -----E

	//方式1:利用if单分支实现:
	//定义一个学生的成绩:
	var score int = 96
	//对学生的成绩进行判定:
	if score >= 90 {
		fmt.Println("您的成绩为A级别")
	}
	if score >= 80 && score < 90 {
		fmt.Println("您的成绩为B级别")
	}
	if score >= 70 && score < 80 {
		fmt.Println("您的成绩为C级别")
	}
	if score >= 60 && score < 70 {
		fmt.Println("您的成绩为D级别")
	}
	if score < 60 {
		fmt.Println("您的成绩为E级别")
	}

在这里插入图片描述

//上面方式1利用多个单分支拼凑出多个选择,多个选择是并列的,依次从上而下顺序执行,即使走了第一个分支,那么其它分支也是需要判断

	//方式2:多分支:优点:如果已经走了一个分支了,那么下面的分支就不会再去判断执行了
	if score >= 90 {
		fmt.Println("您的成绩为A级别")
	} else if score >= 80 {//else隐藏:score<90	
		fmt.Println("您的成绩为B级别")
	} else if score >= 70 {//score<80	
		fmt.Println("您的成绩为C级别")	
	} else if score >= 60 {//score<70	
		fmt.Println("您的成绩为D级别")	
	} else {//score<60	
		fmt.Println("您的成绩为E级别")		
	}//建议你保证else的存在,只有有了else才会真正起到多选一的效果

	if score > 10 {
		fmt.Println("aaa")
	} else if score > 6{
		fmt.Println("bbb")
	}
}

在这里插入图片描述

switch分支

【1】基本语法:
在这里插入图片描述

【2】代码练习:

package main
import "fmt"
func main(){
	//实现功能:根据给出的学生分数,判断学生的等级:
	//  >=90  -----A
	//  >=80  -----B
	//  >=70  -----C
	//  >=60  -----D
	//  <60   -----E

	//给出一个学生分数:
	var score int = 187
	//根据分数判断等级:
	//switch后面是一个表达式,这个表达式的结果依次跟case进行比较,满足结果的话就执行冒号后面的代码。
	//default是用来“兜底”的一个分支,其它case分支都不走的情况下就会走default分支
	//default分支可以放在任意位置上,不一定非要放在最后。
	switch score/10 {
	    case 10:
			fmt.Println("您的等级为A级")
		case 9:
			fmt.Println("您的等级为A级")
		case 8:
			fmt.Println("您的等级为B级")
		case 7:
			fmt.Println("您的等级为C级")
		case 6:
			fmt.Println("您的等级为D级")
		case 5:
			fmt.Println("您的等级为E级")
		case 4:
			fmt.Println("您的等级为E级")
		case 3:
			fmt.Println("您的等级为E级")
		case 2:
			fmt.Println("您的等级为E级")
		case 1:
			fmt.Println("您的等级为E级")
		case 0:
			fmt.Println("您的等级为E级")
		default:
			fmt.Println("您的成绩有误")
		}
}

在这里插入图片描述

【3】注意事项:

(1)switch后是一个表达式(即:常量值、变量、一个有返回值的函数等都可以)
在这里插入图片描述

(2)case后的各个值的数据类型,必须和switch的表达式数据类型一致
在这里插入图片描述

(3)case后面可以带多个值,使用逗号间隔。比如case值1,值2…
在这里插入图片描述

(4)case后面的表达式如果是常量值(字面量),则要求不能重复
在这里插入图片描述

(5)case后面不需要带break,程序匹配到一个case后就会执行对应的代码块,然后退出switch,如果一个都匹配不到,则执行default

(6)default语句不是必须的,位置也是随意的。

(7)switch后也可以不带表达式,当做if分支来使用
在这里插入图片描述

(8)switch后也可以直接声明/定义一个变量,分号结束,不推荐
在这里插入图片描述

(9)switch穿透,利用fallthrough关键字,如果在case语句块后增加falthrough,则会继续执行下一个case,也叫switch穿透。
在这里插入图片描述

循环结构

for循环

【1】语法结构:
在这里插入图片描述

for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。for循环在第一次反复之前要进行初始化,即执行初始表达式;随后,对布尔表达式进行判定,若判定结果为true,则执行循环体,否则,终止循环;最后在每一次反复的时候,进行某种形式的“步进”,即执行迭代因子。

1.初始化部分设置循环变量的初值
2.条件判断部分为任意布尔表达式
3.迭代因子控制循环变量的增减

for循环在执行条件判定后,先执行的循环体部分,再执行步进。
for循环结构的流程图如图所示:
在这里插入图片描述

【2】代码练习:

步骤1:

package main
import "fmt"
func main(){
	//实现一个功能:求和:1+2+3+4+5:
	//定义变量:
	var il int = 1
	var i2 int = 2
	var i3 int = 3
	var i4 int = 4
	var i5 int = 5

	//求和:
	//定义一个变量,用来接收这个和
	var sum int = 0
	sum += i1
	sum += i2
	sum += i3
	sum += i4
	sum += i5

	//输出结果:
	fmt.Println(sum)
}

缺点:变量的定义太多了

步骤2:

package main
import "fmt"
func main(){
	//实现一个功能:求和:1+2+3+4+5:
	//定义变量:
	var i int = 1

	//求和:
	//定义一个变量,用来接收这个和
	var sum int = 0
	sum += i1
	i++
	sum += i1
	i++
	sum += i1
	i++
	sum += i1
	i++
	sum += i1
	i++

	//输出结果:
	fmt.Println(sum)
}

缺点:重复的代码太多了
解决:利用for循环:

package main
import "fmt"
func main(){
	//实现一个功能:求和:1+2+3+4+5:
	//求和:
	//利用for循环来解决问题:
	var sum int = 0
	for i := 1 ; i <= 5 ; i++{
		sum += i
	}

	//输出结果:
	fmt.Println(sum)

	//for循环的语法格式:
	//for初始表达式;布尔表达式(条件判断);迭代因子{
	//循环体;--》反复重复执行的内容
	//}

	//注意:for的初始表达式不能用var定义变量的形式,要用:=
	//注意:for循环实际就是让程序员写代码的效率高了,但是底层该怎么执行还是怎么执行的,底层效率没有提高,是程序员写代码简洁了而己
}

在这里插入图片描述

for循环原理:
在这里插入图片描述

细节

【1】格式灵活:

package main
import "fmt"
func main(){
	i := 1//变量的初始化
	for i<=5 {//条件表达式。判断条件
		fmt.Println("你好Golang")//循环体
		i++//迭代
	}
}

【2】死循环:

package main
import "fmt"
func main(){
	//死循环:
	// for {
	// fmt.Println("你好Golang")
	// }

	for ;; {
		fmt.Println("你好Golang")
	}
}

在控制台中结束死循环:ctrl+c

for range

forrange结构是Go语言特有的一种的迭代结构,在许多情况下都非常有用,for range可以遍历数组、切片、字符串、map及通道,forrange语法上类似于其它语言中的foreach语句,一般形式为:
在这里插入图片描述

代码展示:

package main
import "fmt"
func main(){
	//定义一个字符串:
	var str string = "hello golang你好"
	//方式1:普通for循环:按照字节进行遍历输出的(暂时先不使用中文)
	// for i := 0;i < len(str);i++{//i:理解为字符串的下标
	// 	fmt.Printf("%c \n",str[i])
	// }

	//方式2:for range
	for i,value := range str {
		fmt.Printf("索引为:%d,具体的值为:%c\n",i,value)
	}

	//对str进行遍历,遍历的每个结果的索引值被i接收,每个结果的具体数值被value接收
	//遍历对字符进行遍历的
}

for-range的结果:
在这里插入图片描述

关键字

break

【1】感受break在循环中的作用:

package main
import "fmt"
func main(){
	//功能:求1-100的和,当和第一次超过300的时候,停止程序
	var sum int = 0
	for i := 1 ; i <= 100 ; i++{
		sum += i
		fmt.Println(sum)
		if sum >= 300 {
			//停止正在执行的这个循环:
			break
		}
	}
	fmt.Println("------ok")
}

在这里插入图片描述

总结:
1.switch分支中,每个case分支后都用break结束当前分支,但是在go语言中break可以省略不写。
2.break可以结束正在执行的循环

【2】深入理解:

package main
import "fmt"
func main(){
	//双重循环:
	for i := 1 ; i <= 5 ; i++{
		for j := 2 ; j <= 4 ; j++{
			fmt.Println("i: %v, j: %v \n",i,j)
		    if i == 2 && j == 2 {
			break
			}
		}
	}
	fmt.Println("------ok")
}


总结:break的作用结束离它最近的循环
结果:
在这里插入图片描述

【3】标签的使用展示:

package main
import "fmt"
func main(){
	//双重循环:
	lable2:
	for i := 1 ; i <= 5 ; i++{
		for j := 2 ; j <= 4 ; j++{
			fmt.Printf("i: %v, j: %v \n",i,j)
		    if i == 2 && j == 2 {
			break lable2    //结束指定标签对应的循环
			}
		}
	}
	fmt.Println("------ok")
}

注意:如果那个标签没有使用到的话,那么标签不用加,否则报错:定义未使用
结果:
在这里插入图片描述

continue

【1】continue的作用:

package main
import "fmt"
func main(){
	//功能:输出1-100中被6整除的数:
	//方式1:
	// for i := 1; i <= 100; i++ {
	// 	if i % 6 == 0 {
	// 		fmt.Println(i)
	// 	}
	// }

	//方式2:
	for i := 1; i <= 100; i++ {
		if i % 6 != 0 {
			continue //结束本次循环,继续下一次循环
		}
		fmt.Println(i)
	}
}

【2】深入理解:

package main
import "fmt"
func main(){
	//双重循环:
	for i := 1 ; i <= 5 ; i++{
		for j := 2 ; j <= 4 ; j++{
		    if i == 2 && j == 2 {
			continue
			}
			fmt.Printf("i: %v, j: %v \n",i,j)
		}
	}
	fmt.Println("------ok")
}

结果:
在这里插入图片描述
结论:continue的作用是结束离它近的那个循环,继续离它近的那个循环

【3】标签的作用:

package main
import "fmt"
func main(){
	//双重循环:
	lable:
	for i := 1 ; i <= 5 ; i++{
		for j := 2 ; j <= 4 ; j++{
		    if i == 2 && j == 2 {
			continue lable
			}
			fmt.Printf("i: %v, j: %v \n",i,j)
		}
	}
	fmt.Println("------ok")
}

在这里插入图片描述

goto

【1】Golang的goto语句可以无条件地转移到程序中指定的行。
【2】goto语句通常与条件语句配合使用。可用来实现条件转移
【3】在Go程序设计中一般不建议使用goto语句,以免造成程序流程的混乱。
【4】代码展示:

package main
import "fmt"
func main(){
	fmt.Println("hello golang1")
	fmt.Println("hello golang2")
	if 1 == 1{
		goto lable1  //goto一般配合条件结构一起使用
	}
	fmt.Println("hello golang3")
	fmt.Println("hello golang4")
	fmt.Println("hello golang5")
	fmt.Println("hello golang6")
	lable1:
	fmt.Println("hello golang7")
	fmt.Println("hello golang8")
	fmt.Println("hello golang9")
}

在这里插入图片描述

return

代码展示:

package main
import "fmt"
func main(){
	for i := 1; i <= 100; i++ {
		fmt.Println(i)
		if i == 14 {
			return//细束当前的函数
		}
	}
	fmt.Println("hello golang")
}

结果:
在这里插入图片描述

不用公网IP!用Ollama+Chatbox搭建家庭AI助手(内网穿透方案对比) 本文详细介绍了如何利用Ollama和Chatbox在家庭局域网中搭建本地AI助手,无需公网IP即可实现内网穿透。通过对比不同穿透方案(如Tailscale、FRP等),提供最优配置建议,帮助用户低成本部署隐私安全的家庭AI系统,适用于智能家居、儿童教育等多种场景。 阅读详情

相关推荐

全能扫描王的实现(python版本)- 目标检测图像矫正

全能扫描王python代码实现,可用于文件扫描或者是图像校正

搬砖猛女的啃书历程 5488

【Go】P6 Golang 基础:流程控制

流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,可以说是一门语言的"经脉"。Go 语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。if-else: 条件分支的基础,支持在条件中声明变量for: 唯一的循环关键字,涵盖所有循环场景,包括传统循环、类 while 循环和for range迭代switch:优雅的多分支选择,默认不穿透,支持多值匹配和表达式判断:控制循环执行流程,支持标签跳转goto。

weixin_43098506的博客 1988

ArcGIS+PLUS+InVEST三件套实战:从零搞定土地利用变化与碳储量预测(附完整数据包)

本文详细介绍了如何整合ArcGIS、PLUS模型和InVEST模型,构建土地利用变化与碳储量预测的完整研究流水线。通过多情景模拟和生态系统服务评估,提供从数据准备到结果验证的实战指南,助力研究者高效完成生态评估项目。

weixin_30399821的博客 543

Golang入门指南 - Go的流程控制

Go中最常用的流程控制有 `if` 和 `for` ,而 `switch` 和 `goto` 主要是为了简化代码、降低重复代码而生的机构,属于扩展类的流程控制

Y_9906的博客 315

智能车竞赛疯狂电路组:Altium Designer赛道设计与计分策略全解析

本文全面解析智能车竞赛疯狂电路组中,如何利用Altium Designer进行专业赛道设计。从软件基础操作、图层管理与封装库调用,到赛道拓扑绘制、核心尺寸规范,详细拆解设计全流程。文章深入结合计分策略,指导如何在设计阶段植入策略点,优化路径与元器件布局,以在比赛中获得时间优势,并提供了从图纸输出到实地测试的完整避坑指南。

beta5的博客 584

STM32 野火MINI 用FontCvtST.exe 生成.c文件 写汉字到文本框 按钮上

STM32 野火MINI 用FontCvtST.exe 生成.c文件 写汉字到文本框 按钮上 参考了好多大神博客,自己写的过程中发现,还有些小细节。 一、打开Notepad写需要的字 另存为 UTF-16LE 也就是Unicode。 二、打开FontCvtST转 删掉所有字 读入test.txt里的字 选择刚才的test.txt 另存为.c文件 改个英文名 复制到RTOS的例程文件夹下 三、打开GUIBuilder 画一个这样的 保存之前要注意路径配置要在当前位置,否则存不上 生成的D

weixin_41376117的博客 1935

GO之流程控制

for range 结构时Golang语言特有的一种迭代结果,在许多情况下都非常有用,for range 可以遍历数组、切片、字符串、map及通道。这三种基本逻辑是相互支撑的,他们构成了算法基本机构,无论怎样复杂的逻辑结构,都可以通过他们来表达。fmt.Printf("索引为: %d, 具体的值为:%c \n", i, value)索引为: 10, 具体的值为:d。索引为: 11, 具体的值为:!索引为: 15, 具体的值为:你。索引为: 18, 具体的值为:好。索引为: 21, 具体的值为:,

happy_king_zi的博客 1136

AtmelStudio 7 ASF库学习笔记一:新建工程、配置时钟、下载程序和查看官方例程

由于需要学习一下atmel的atsaml 系列,使用AtmelStudio 7开发,之前主要用STM32,现在看到Atmel的库函数,其实是有些类相似的。 ASF3的库对应ST的标准库。ASF4对应ST的HAL库,Ateml Start对应STM32CubeMX。但在这里还是用ASF3来开发,因为Ateml Start还不支持我的这个芯片,而且和STM32的HAL库类似,ASF4为了好移植都是底...

yxy244的博客 8657

Go语言学习笔记—golang流程控制

Go语言中的流程控制

qq_39280718的博客 471

PCB中的CAF深度剖析与对策研究

摘要:本文系统研究了PCB板的导电阳极丝(CAF)问题,阐明了CAF是在电场作用下铜离子沿玻纤微裂通道迁移形成导电丝的现象,其形成需铜、水汽、电解质、偏压和迁移通道五个条件。CAF会导致PCB绝缘性能下降和信号传输异常,严重影响电子产品可靠性。研究提出了板材选择、钻孔工艺控制、叠板结构优化等预防措施,以及增大孔距、错位排列等设计注意事项,并介绍了IPC-TM-650-2.6.25测试标准。未来应在耐CAF材料、测试技术和制造工艺方面深入研究,以提升PCB可靠性。(150字)

2401_84691632的博客 1704

基于Vivado MIG IP核的DDR3读写实验(top_rom_ddr/ddr_top)

一、前言 关于Vivado MIG IP核详细配置可以参考我之前的文章:基于Vivado MIG IP核的DDR3控制器(DDR3_CONTROL) 关于MIG IP核的用户端的接口时序可以参考这篇文章:XILINX 的 MIG IP(非AXI4)接口时序以及控制 二、实验内容 本次实验的内容主要是通过MIG IP核向DDR3读写数据,DDR3的接口时序由ddr_top模块提供: ddr_top模块的数据来源是wr_fifo,wr_fifo的数据实际来自top_sd_photo模块(本实验仿真

耐心的小黑的博客 3027

Go语言中的流程控制

「万事开头难,视频号500粉直播需要你的助力!你的支持是我前进的动力!」1、Golang 中的流程控制流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”。Go 语言中最常用的流程控制有 if 和 for,而 switch 和 goto 主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。2、if else(分支结构)2.1、if 条件判断基本写...

天行健,君子以自强不息;地势坤,君子以厚德载物。 1351

从零开始学Agent的搭建——多角色项目需求分析框架实战

场景一:电商促销需求——技术细节顾此失彼团队用单Agent分析一个"双11秒杀系统"的需求。Agent输出了完整的功能清单,但当我们拿着这份方案找架构师评审时,发现了致命问题:Agent完全没有考虑库存扣减的并发一致性、Redis与MySQL之间的数据同步延迟、以及超卖风险的控制策略。原因是单Agent在处理"业务理解"任务时,已经耗尽了它的"注意力预算",技术深度分析几乎为空。场景二:ERP集成需求——跨系统边界模糊。

软件行业技术文化交流。 534

golang快速入门:流程控制

流程控制主要用于设定计算执行的次序,建立程序的逻辑结构。根据具体的业务逻辑,灵活组合上述控制语言来实现相应的功能。

Maisucsdn的博客 177

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Golang 中的流程控制

Go 语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。

阿澈不吃蒜的博客 522

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

go流程控制

流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”。Go 语言中最常用的流程控制有 if 和 for,而 switch 和 goto 主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。

SunnyRivers 1167

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Golang 经脉之流程控制

Golang 经脉之流程控制一、流程控制简介二、基本流程控制语句分支语句(if 和 switch)循环语句(for),NO while小结跳转语句(goto):跳转到指定代码标签快速无条件退出多层循环统一错误处理三、循环控制语句(break 和 continue)break 语句:中断循环或跳出 switch 判断continue 语句:结束 for 当前循环,开始 for 的下一个循环(仅限在 ...

AMimiDou_212 1602

golang流程控制总结

go语言中的流程控制 本文视频教程地址:https://www.bilibili.com/video/BV1zR4y1t7Wj?from=search&seid=12495842889998176802&spm_id_from=333.337.0.0 go语言中的条件 条件语句是用来判断给定的条件是否满足(表达式值是否为true或者false),并根据判断的结果(真或假)决定执行的语句,go语言中的条件语句也是这样的。 go语言中的条件语句包含如下几种情况 if 语句:if 语句 由一个布

geek99_guo的博客 693

Golang - 流程控制

Golang - 流程控制 目录 Golang - 流程控制 1. 选择结构 2. 循环结构 3. 跳转语句 Golang - 流程控制 1. 选择结构 if else语句: //package 声明开头表示代码所属包 package main impo...

deng6648的博客 155

golang 时间循环、流程控制条件

package base016 import ( "fmt" "math/rand" "strconv" "time" ) func BaseTime() { now := time.Now() fmt.Println("时间戳(秒):", now.Unix()) fmt.Println("时间戳(纳秒):", now.UnixNano()) fmt.Println("时间戳(毫秒):", now.UnixNano()/1e6) fmt.Println("时间戳(纳秒转毫秒):",.

灰猫 1607

11-golang流程控制

流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”。语句还可以在语句后面添加标签,表示退出某个标签对应的代码块,标签要求必须定义在对应的。语句,可以同时匹配多个条件,中间用逗号分隔,有其中一个匹配成功即可。主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。语句可以结束当前循环,开始下一次的循环迭代过程,仅限在。语句后添加标签时,表示开始标签对应的循环。注意:在go语言中布尔表达式不用使用括号!语句,可以非常容易的判断多个值的情况。...

hanjinjuan的博客 863

【Go语言】Go语言中的流程控制

流程控制主要用于设定计算执行的顺序,简历程序的逻辑结果,Go语言的流程控制语句与其他语言类似,支持如下几种流程控制语句:条件语句:用于条件判断,对应的关键字有if、else和else if;分支语句:用于分支选择,对应的关键字有switch、case和select(用于通道);循环语句:用于循环迭代,对应的关键字有for和range;跳转语句:用于代码跳转,对应的关键字有goto。

Python、Golang、大数据 1233

Golang——3、流程控制语句

本文介绍了Go语言中的主要流程控制语句,包括if-else分支、for循环、for range遍历和switch-case分支。重点讲解了if-else的多种写法、for循环的不同形式(包括无限循环和嵌套循环),以及switch-case的分支处理和穿透特性。此外,文章还通过多个编程练习(如求最大值、阶乘计算、九九乘法表等)演示了这些流程控制语句的实际应用。Go语言的流程控制设计简洁高效,如省略括号、不允许省略花括号等特性体现了其规范化的编程风格。

Talon的博客 800

[ golang ] 流程控制

六、流程控制 选择,即根据条件跳转到不同的执行序列; 循环,即根据条件反复执行某个序列,当然每一次循环执行的输入输出可能会发生变化; 跳转,即根据条件返回到某执行序列。 Go语言支持如下的几种流程控制语句: 条件语句,对应的关键字为if、 else和else if; 选择语句,对应的关键字为switch、 case和select(将在介绍channel的时候细说) 循环语句,对应的关键字为...

hanfs390的博客 285

【Golang】:流程控制语句

Go语言提供了丰富的流程控制语句,包括分支控制(if/else、switch)、循环控制(for)和跳转控制(break/continue/goto/return)。if语句支持变量初始化,switch默认自动跳出且支持fallthrough。for循环支持标准形式、while风格和无限循环,同时提供range遍历数据结构。跳转控制中,break/continue支持标签跳转多层循环,goto可跳转到指定标签,return用于终止函数执行。这些特性使Go的流程控制既灵活又简洁。

元清的博客 485

Golang 流程控制+函数+错误处理机制

func 函数名 (形参列表) (返回值列表) { // 左大括号不能换行//执行语句return xxx使用errors.New和panic内置函数error.New(“错误说明”),返回一个 error 类型的值,表示一个错误panic(),内置函数,接收任意值作为参数,引发异常return nil} else {return errors.New("读取配置文件错误")if err!

paofuluolijiang的博客 1230
上一篇: Go运算符
下一篇: 【Go的函数】
檀月初弎
博客等级 码龄3年 247粉丝 20原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值