当前位置: 首页 > news >正文

go语言中流程控制语句

Go语言中的流程控制语句包括条件判断、循环和分支控制。以下是详细介绍:

1. 条件判断语句

if 语句

Go语言的 if 语句与其他语言类似,支持基本的条件判断。

if 条件 {// 执行代码
}
  • if-else 语句:

    if 条件 {// 执行代码
    } else {// 执行代码
    }
    
  • if-else if-else 语句:

    if 条件1 {// 执行代码
    } else if 条件2 {// 执行代码
    } else {// 执行代码
    }
    
  • if 语句中可以带有一个初始化语句,用于在判断条件前执行一次。

    if 初始化语句; 条件 {// 执行代码
    }
    
switch 语句

switch 语句用于简化多个条件的判断,通常比多个 if-else 更简洁。

switch 表达式 {
case 值1:// 执行代码
case 值2:// 执行代码
default:// 执行代码
}
  • switch 语句可以没有表达式,相当于 switch true,适合多个条件分支。

    switch {
    case 条件1:// 执行代码
    case 条件2:// 执行代码
    default:// 执行代码
    }
    

2. 循环语句

Go语言只有 for 一个循环关键字,但可以用于多种场景。

for 循环

基本的 for 循环形式:

for 初始化语句; 条件; 后续操作 {// 执行代码
}

例如:

for i := 0; i < 10; i++ {fmt.Println(i)
}
while 类似的循环

省略初始化和后续操作,可以实现类似 while 的效果。

i := 0
for i < 10 {fmt.Println(i)i++
}
无限循环

省略条件,实现无限循环。

for {// 执行代码
}
for range 循环

用于遍历数组、切片、映射、字符串和通道。

for 索引, 值 := range 集合 {// 执行代码
}

例如,遍历数组:

arr := []int{1, 2, 3, 4}
for i, v := range arr {fmt.Println(i, v)
}

3. 跳转控制语句

break

用于提前结束循环。

for i := 0; i < 10; i++ {if i == 5 {break}fmt.Println(i)
}
continue

用于跳过本次循环,继续下一次循环。

for i := 0; i < 10; i++ {if i%2 == 0 {continue}fmt.Println(i)
}
goto

goto 可以直接跳转到代码中的指定标签。标签以英文冒号 : 结尾。

i := 0
LOOP:fmt.Println(i)i++if i < 5 {goto LOOP}

4. 特殊控制语句

defer

defer 用于延迟执行函数,通常用于资源清理。被 defer 的语句会在函数返回之前执行,并且按后进先出的顺序执行。

func main() {defer fmt.Println("世界")fmt.Println("你好")
}

上面的代码会先输出“你好”,再输出“世界”。

panic 和 recover
  • panic 用于引发异常,终止程序的正常执行。
  • recover 用于捕获 panic,避免程序崩溃。
func main() {defer func() {if r := recover(); r != nil {fmt.Println("捕获到异常:", r)}}()panic("出现了严重错误")
}

相关文章:

go语言中流程控制语句

Go语言中的流程控制语句包括条件判断、循环和分支控制。以下是详细介绍&#xff1a; 1. 条件判断语句 if 语句 Go语言的 if 语句与其他语言类似&#xff0c;支持基本的条件判断。 if 条件 {// 执行代码 }if-else 语句&#xff1a; if 条件 {// 执行代码 } else {// 执行代码…...

k8s 部署 emqx

安装cert-manager 使用Helm安装 helm repo add jetstack https://charts.jetstack.io helm repo update helm upgrade --install cert-manager jetstack/cert-manager \--namespace cert-manager \--create-namespace \--set installCRDstrue如果通过helm命令安装失败&#x…...

CSS.导入方式

1.内部样式 在head的style里面定义如 <style>p1{color: brown;}</style> 2.内联样式 直接在标签的里面定义如 <p2 style"color: blue;">这是用了内联样式&#xff0c;蓝色</p2><br> 3.外部样式表 在css文件夹里面构建一个css文件…...

Linux之nfs服务器和dns服务器

NFS服务器 NFS&#xff08;Network File System&#xff0c;网络文件系统)&#xff0c;NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中&#xff0c;而在本地端的系统 中看来&#xff0c;那个远程主机的目录就好像是自己的一个磁盘分区一样。 注&am…...

大模型系列——AlphaZero/强化学习/MCTS

AlphaGo Zero无需任何人类历史棋谱&#xff0c;仅使用深度强化学习&#xff0c;从零开始训练三天的成就已远远超过了人类数千年积累的围棋知识。 1、围棋知识 &#xff08;1&#xff09;如何简单理解围棋知识 &#xff08;2&#xff09;数子法分胜负&#xff1a;https://zhu…...

原生js实现拖拽上传(拖拽时高亮上传区域)

文章目录 drop相关事件说明-MDN演示代码&#xff08;.html) drop相关事件说明-MDN 演示 代码&#xff08;.html) <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"…...

python道格拉斯算法的实现

废话不多说 直接开干 需要用到模块 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple math #对浮点数的数学运算函数 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple shapely #提供几何形状的操作和分析&#xff0c;如交集、并集、差集等 pip install -i …...

STM32的hal库中,后缀带ex和不带的有什么区别

在STM32的HAL&#xff08;硬件抽象层&#xff09;库中&#xff0c;后缀带“ex”和不带“ex”的文件及其包含的内容存在显著的区别。这些区别主要体现在功能扩展性、使用场景以及API的层次上。 一、功能扩展性 不带“ex”后缀的文件&#xff1a; 这些文件通常包含标准的、核心…...

可观测性三大支柱

目录 可观测性成熟度模型 可观测性三大支柱的具体定义如下 指标 日志 链路 可观测性成熟度模型 可观测性成熟度模型&#xff0c;是一种用于衡量和评估企业软件系统内部可观测性的框架或方法&#xff0c;同 时也是一种用于反馈企业可观测性体系建设成熟度水平的框架或方法…...

【银河麒麟高级服务器操作系统·实例分享】裸金属服务器开机失败分析及处理建议

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://documentkylinos.cn 现象描述 裸金属物理服务器开机卡在EFI stub页面…...

模型剪枝实操

文章目录 实验报告&#xff1a;模型剪枝在图像分类任务中的应用摘要实验方法数据集和预处理模型架构剪枝过程实验设置 实验效果性能对比详细分析 结论 实验报告&#xff1a;模型剪枝在图像分类任务中的应用 摘要 本实验通过模型剪枝技术&#xff0c;对一个图像分类模型进行压…...

网安学习路线!最详细没有之一!看了这么多分享网安学习路线的一个详细的都没有!

零基础小白&#xff0c;到就业&#xff01;入门到入土的网安学习路线&#xff01; 在各大平台搜的网安学习路线都太粗略了。。。。看不下去了&#xff01; 我把自己报班的系统学习路线&#xff0c;整理拿出来跟大家分享了&#xff01;点击下图&#xff0c;福利&#xff01; …...

Ubuntu18.04安装vscode1.94.2失败安装vscode1.84.2

系统环境&#xff1a;Ubuntu18.04.6 LTS 自己先去vscode官网下载好最新版本的vscode1.94.2&#xff08;不下也行&#xff0c;反正最新版也用不了&#xff0c;哈哈&#xff09; 网址&#xff1a;Visual Studio Code - Code Editing. RedefinedVisual Studio Code is a code ed…...

Redis中Lua脚本的使用场景

Redis 中的 Lua 脚本可以用于多种场景&#xff0c;以下是一些常见的使用场景及其对应的 Java 实现示例。 通过使用 Lua 脚本&#xff0c;可以在 Redis 中实现复杂的逻辑和原子操作&#xff0c;同时利用 Java 客户端&#xff08;如 Spring Data Redis&#xff09;方便地执行这些…...

重工业数字化转型创新实践:某国家特大型钢铁企业如何快速落地基于实时数仓的数据分析平台

使用 TapData&#xff0c;化繁为简&#xff0c;摆脱手动搭建、维护数据管道的诸多烦扰&#xff0c;轻量替代 OGG, Kettle 等同步工具&#xff0c;以及基于 Kafka 的 ETL 解决方案&#xff0c;「CDC 流处理 数据集成」组合拳&#xff0c;加速仓内数据流转&#xff0c;帮助企业…...

【linux】手动启动sshd

安装openssh-server修改配置文件启动 以下是在常见的Linux系统中手动开启sshd服务的步骤&#xff1a; 1.安装openssh-server CentOS/RHEL系统 首先&#xff0c;以具有管理员权限的用户&#xff08;通常是root&#xff09;登录到系统。检查sshd服务是否已经安装。可以使用以…...

前端项目【本科期间】

1.基于博达网站群的申达办官方网站开发与维护 实习项目:校发展规划中心暨申请更名大学办公室官方网站 技术栈:HTML/CSS/Javascript 博达网站群的入门级指南 -CSDN博客博达网站群的入门级指南 -CSDN博客 网上少的较全的基于博达网站建设指南,CSDN相关内容综合指数NO有.1 …...

深度学习中的学习率调度:循环学习率、SGDR、1cycle 等方法介绍及实践策略研究

深度学习实践者都知道,在训练神经网络时,正确设置学习率是使模型达到良好性能的关键因素之一。学习率通常会在训练过程中根据某种调度策略进行动态调整。调度策略的选择对训练质量也有很大影响。 大多数实践者采用一些广泛使用的学习率调度策略,例如阶梯式衰减或余弦退火。这些…...

Python毕业设计-基于 Python flask 的前程无忧招聘可视化系统,Python大数据招聘爬虫可视化分析

博主介绍&#xff1a;✌Java徐师兄、7年大厂程序员经历。全网粉丝13w、csdn博客专家、掘金/华为云等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不…...

Linux初阶——线程(Part1)

一、线程概念 1、如何理解线程 说到线程&#xff0c;那么我们就要回到进程了。 1.1. 再谈进程 对一个进程来说&#xff0c;它在内存中是这样的&#xff1a; 图1.1-a 其中一个 task_struct 独享一个进程地址空间和一个页表。 而线程其实和进程差不多&#xff0c;是这样的&…...

别再只调分辨率了!手把手教你用VESA时序搞定1080P显示器驱动(附Verilog代码)

从VESA标准到FPGA实战&#xff1a;构建1080P显示驱动的完整逻辑链 在数字显示技术领域&#xff0c;驱动一块19201080分辨率的屏幕远不止是配置几个参数那么简单。当我第一次尝试用FPGA驱动高清显示器时&#xff0c;发现大多数教程都停留在"设置分辨率"的层面&#xf…...

5分钟实现电脑风扇智能控制:FanControl.HWInfo终极指南

5分钟实现电脑风扇智能控制&#xff1a;FanControl.HWInfo终极指南 【免费下载链接】FanControl.HWInfo FanControl plugin to import HWInfo sensors. 项目地址: https://gitcode.com/gh_mirrors/fa/FanControl.HWInfo 想要告别电脑风扇的噪音困扰吗&#xff1f;FanCon…...

Sketch Find and Replace终极指南:设计师必备的批量文本替换神器

Sketch Find and Replace终极指南&#xff1a;设计师必备的批量文本替换神器 【免费下载链接】Sketch-Find-And-Replace Sketch plugin to do a find and replace on text within layers 项目地址: https://gitcode.com/gh_mirrors/sk/Sketch-Find-And-Replace 还在为Sk…...

AI工作流引擎:基于DAG与智能体的自动化任务编排实践

1. 项目概述&#xff1a;当AI遇上工作流&#xff0c;一场效率革命的开端 最近在GitHub上看到一个挺有意思的项目&#xff0c;叫 DahnM20/ai-flow 。光看名字&#xff0c;你可能会觉得这又是一个“AI自动化”的玩具&#xff0c;但仔细研究其源码和设计理念后&#xff0c;我发现…...

别再死记公式了!用Python的NumPy和Matplotlib玩转坐标转换(附象限处理代码)

用Python实战坐标转换&#xff1a;从数学公式到可视化应用 坐标转换是计算机图形学、机器人学和数据可视化中的基础操作。传统教学中&#xff0c;我们往往被要求死记硬背转换公式&#xff0c;却很少有机会直观理解其实际应用场景。本文将带你用NumPy和Matplotlib这两个Python利…...

63岁黄仁勋再添博士头衔、英特尔CEO为其披袍,最新演讲刷屏:人类编写软件、计算机执行指令的范式已终结!

整理 | 苏宓 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 日前&#xff0c;在卡内基梅隆大学&#xff08;CMU&#xff09;的 2026 届毕业典礼上&#xff0c;英伟达 CEO 黄仁勋的头衔再加一&#xff0c;最新获得 CMU 科学与技术荣誉博士学位&#xff0c;而这也是…...

车规级国际物联卡是什么?车载物联网硬件选型与行业标准解析

随着跨境整车出口、改装车辆、工程机械外销、车载定位终端普及&#xff0c;车载联网通信要求持续升级。普通民用SIM卡无法适配车辆颠簸、温差跨度大、高速移动、跨境切换网络的复杂工况&#xff0c;车规级国际物联卡逐步成为车载智能化硬件的标配通信载体。很多出海设备厂商容易…...

别再只会scp了!Ansible copy和file模块的5个实战场景,从配置文件分发到权限管理

别再只会scp了&#xff01;Ansible copy和file模块的5个实战场景&#xff0c;从配置文件分发到权限管理 如果你还在用scp或rsync手动同步服务器文件&#xff0c;每次修改权限都要逐台登录操作&#xff0c;那么这篇文章将彻底改变你的运维工作流。Ansible的copy和file模块不仅能…...

3分钟实现Zotero与Notion双向联动:Notero完整使用指南

3分钟实现Zotero与Notion双向联动&#xff1a;Notero完整使用指南 【免费下载链接】notero A Zotero plugin for syncing items and notes into Notion 项目地址: https://gitcode.com/gh_mirrors/no/notero 你是否曾为学术研究中的文献管理而烦恼&#xff1f;Zotero中精…...

如何用本地OCR工具快速提取视频硬字幕:3步完成专业字幕制作

如何用本地OCR工具快速提取视频硬字幕&#xff1a;3步完成专业字幕制作 【免费下载链接】video-subtitle-extractor 视频硬字幕提取&#xff0c;生成srt文件。无需申请第三方API&#xff0c;本地实现文本识别。基于深度学习的视频字幕提取框架&#xff0c;包含字幕区域检测、字…...