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

C语言番外篇(4)--------->goto语句

在C语言中,有一个很特殊的语法,这就是goto语句。goto用于实现同一函数的跳转,goto后面会有一个标志,执行goto语句时,就会跳转到标志的位置。

一、goto语句的语法

(1)goto在前,标志在后

没有使用goto语句的代码:

#include <stdio.h>int main()
{printf("C语言\n");printf("Java\n");printf("C++\n");return 0;
}

在VS2019中的运行结果:

上面的例子用于比较使用goto语句的情况:

上述代码使用了goto语句:

#include <stdio.h>int main()
{printf("C语言\n");printf("Java\n");goto flag;printf("C++\n");flag:return 0;
}

在VS2019中的运行结果:

在结果中,我们可以看到goto语句和标志间的代码并没有打印,也就是C++并没有打印在屏幕上。 

(2)goto在后,标志在前

如果标志在前面,goto在后面会是怎样的情况呢?

参考代码:

#include <stdio.h>int main()
{printf("C语言\n");printf("Java\n");flag:printf("C++\n");goto flag;return 0;
}

在VS2019中的运行结果:

这时候我们可以看到,当执行到goto语句的时候又会返回到flag的位置,然后打印C++。后面又到goto,继而又到标志flag。从而,形成了一个死循环。 

二、goto语句的应用场景

从刚刚的例子中,相信你学会了如何使用goto语句。goto语句用在函数中,跳转到标志的位置。如果使用次数过多,将会使得代码的可控性下降,不利于开发人员维护和阅读代码。但是,在多个循环中,使用goto语句可以很好的跳出多层循环。

之前的博客中提及到了多层循环是使用break跳出的,但是一个break只能跳出一层循环,当循环层数过多时使用break的数量也会变多。对于这种情况,我们可以使用goto语句很好解决。

参考代码:

#include <stdio.h>int main()
{int i = 0;int j = 0;int y = 0;for (i = 0; i < 10; i++){for (j = 0; j < 10; j++){for (y = 0; y < 10; y++){if (5 == y){printf("hehe\n");goto flag;}else {printf("hello\n");}}}}flag:return 0;
}

在VS2019中的运行结果:

我们可以看到,当满足判断条件时可以直接跳出多层循环。 

相关文章:

C语言番外篇(4)--------->goto语句

在C语言中&#xff0c;有一个很特殊的语法&#xff0c;这就是goto语句。goto用于实现同一函数的跳转&#xff0c;goto后面会有一个标志&#xff0c;执行goto语句时&#xff0c;就会跳转到标志的位置。 一、goto语句的语法 &#xff08;1&#xff09;goto在前&#xff0c;标志…...

AI 编码 2.0 分析、思考与探索实践:从 Cursor Composer 到 AutoDev Sketch

在周末的公司【AI4SE 效能革命与实践&#xff1a;软件研发的未来已来】直播里&#xff0c;我分享了《AI编码工具 2.0 从 Cursor 到 AutoDev Composer》主题演讲&#xff0c;分享了 AI 编码工具 2.0 的核心、我们的思考、以及我们的 AI 编码工具 2.0 探索实践。 在这篇文章中&am…...

Linux与自动化的基础

Linux简介 Linux是一种开源的类Unix操作系统&#xff0c;广泛应用于服务器、桌面和嵌入式设备。常见的Linux发行版包括 Ubuntu、CentOS 和 Debian&#xff0c;它们各有特色&#xff0c;但都以稳定性和安全性著称。 与图形界面相比&#xff0c;Linux的**命令行界面&#xff08…...

安全开发-环境选择

文章目录 个人心得虚拟机选择ubuntu 22.04python环境选择conda下载使用&#xff1a; 个人心得 在做开发时配置一个专门的环境可以使我们在开发中的效率显著提升&#xff0c;可以避免掉很多环境冲突的报错。尤其是python各种版本冲突&#xff0c;还有做渗透工具不要选择windows…...

【算法设计与分析】(一)介绍算法与复杂度分析

【算法设计与分析】&#xff08;一&#xff09;介绍算法与复杂度分析 前言一、什么是算法&#xff1f;二、算法的抽象机制三、描述算法四、复杂度分析4.1 时间复杂度4.2 空间复杂度 前言 从搜索引擎的高效检索&#xff0c;到推荐系统的个性化推荐&#xff0c;再到人工智能领域…...

SurfaceFlinger代码笔记

drawLayers是做client合成&#xff0c;合成完以后的buffer会放在RenderSurface里 FrameBufferSurface里的buffer是通过setClientTarget给到HWC的&#xff08;HWC应该给client合成的buffer留了一个slot) Output.cpp这个文件非常关键&#xff0c;代表着具体一个Display的操作 d…...

2025 PHP授权系统网站源码

2025 PHP授权系统网站源码 安装教程&#xff1a; PHP7.0以上 先上传源码到服务器&#xff0c;然后再配置伪静态&#xff0c; 访问域名根据操作完成安装&#xff0c; 然后配置伪静态规则。 Ngix伪静态规则&#xff1a; location / { if (!-e $request_filename) { rewrite …...

Fisher散度:从信息几何到机器学习的隐藏利器

Fisher散度&#xff1a;从信息几何到机器学习的隐藏利器 在机器学习和统计学中&#xff0c;比较两个概率分布的差异是常见任务&#xff0c;比如评估真实分布与模型预测分布的差距。KL散度&#xff08;Kullback-Leibler Divergence&#xff09;可能是大家熟悉的选择&#xff0c…...

深度学习每周学习总结Y1(Yolov5 调用官方权重进行检测 )

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客Y1中的内容 &#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 ** 注意该训练营出现故意不退押金&#xff0c;恶意揣测偷懒用假的结果冒充真实打卡记录&#xff0c;在提出能够拿到视频录像…...

实体机器人在gazebo中的映射

这一部分目的是将真实的机器人映射到gazebo中&#xff0c;使得gazebo中的其他虚拟机器人能识别到真实世界的wheeltec机器人。 真实机器人的型号的wheeltec旗下的mini_mec。 一、在wheeltec官方百度云文档中找到URDF原始导出功能包.zip 找到对应的包 拷贝到工作空间下 在原有…...

【学习笔记】Kubernetes

一、 概览 Kubernetes 提供了一个抽象层&#xff0c;是用户可以在屋里或虚拟环境中部署容器化应用&#xff0c;提供以容器为中心的基础架构。 Kubernetes的控制平面和工作节点都有什么组建&#xff1f; 分别有什么作用&#xff1f; 1.1 Kubernetes控制平面和工作节点的组件及…...

【网络编程】几个常用命令:ping / netstat / xargs / pidof / watch

ping&#xff1a;检测网络联通 1. ping 的基本功能2. ping 的工作原理3. ping 的常见用法4. ping 的输出解释5. ping 的应用场景6. 注意事项 netstat&#xff1a;查看网络状态 1. netstat 的基本功能2. 常见用法3. 示例4. 输出字段解释5. netstat 的替代工具6. 注意事项 xargs&…...

上海创智学院(测试)算法笔试(ACM赛制)部分例题

1.第一个题&#xff0c;大概题目意思是求n句话中最长的单词和最短的单词 这个题目做的有点磕巴&#xff0c;好几年没有写过c/c了&#xff0c;连string的复制都不会写了&#xff0c;哈哈哈&#xff0c;太笨了 后面一点点捡起来&#xff0c;还是写出来了&#xff0c;本身没啥&…...

【学术投稿-第四届材料工程与应用力学国际学术会议(ICMEAAE 2025】材料工程与应用力学的探讨

重要信息 官网&#xff1a;www.icmeaae.com 时间&#xff1a;2025年3月7-9日 地点&#xff1a;中国西安 简介 第四届材料工程与应用力学&#xff08;ICMEAAE 2025&#xff09;将于2025年3月7日至9日在中国西安召开。本次会议将重点讨论材料科学、应用力学等领域的最新研究进…...

2025吐槽季第一弹---腾讯云EO边缘安全加速平台服务

前言&#xff1a; 关于EO边缘安全加速平台服务 参照&#xff1a;产品概述,具体如下&#xff1a; 边缘安全加速平台 EO&#xff08;Tencent Cloud EdgeOne&#xff0c;下文简称为 EdgeOne&#xff09;是国内首款基于全新架构的真正一体化的边缘安全加速平台。提供全面的安全防…...

力扣-动态规划-70 爬楼梯

思路 dp数组定义&#xff1a;爬到第i个台阶有多少种爬法递推公式&#xff1a; 当前台阶可能是从前一个或者前两个来的dp数组初始化&#xff1a;遍历顺序&#xff1a;顺序遍历时间复杂度&#xff1a; 代码 class Solution { public:int climbStairs(int n) {if(n 1) ret…...

【DeepSeek】-macOS本地终端部署后运行DeepSeek如何分析图片

【DeepSeek】-macOS本地终端部署后运行DeepSeek如何分析图片 根据您的需求&#xff0c;目前需要了解以下几个关键点及分步解决方案&#xff1a; --- 一、现状分析 1. Ollama 的限制&#xff1a; - 目前Ollama主要面向文本大模型&#xff0c;原生不支持直接上传/处理图片 …...

使用 pytest-mock 进行 Python 高级单元测试与模拟

一、单元测试与模拟的意义 在软件开发中,单元测试用于验证代码逻辑的正确性。但实际项目中,代码常依赖外部服务(如数据库、API、文件系统)。直接测试这些依赖会导致: 测试速度变慢测试结果不可控产生副作用(如真实发送邮件)模拟(Mocking) 技术通过创建虚拟对象替代真…...

lowagie(itext)老版本手绘PDF,包含页码、水印、图片、复选框、复杂行列合并等。

入口类&#xff1a;exportPdf ​ package xcsy.qms.webapi.service;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.utils.StringUtils; import com.ibm.icu.text.RuleBasedNumberFormat; import com.lowa…...

《Linux 指令集:开启极客世界的钥匙_01》

一、命令行基础 &#xff08;一&#xff09;命令行提示符解析 当前用户&#xff1a;显示当前登录的用户名。例如&#xff0c;当前用户为 “ubuntu_user”&#xff0c;则在命令行提示符中会显示该用户名。 连接符&#xff1a;通常是 “”&#xff0c;用于分隔用户名和计算机名…...

双目深度相机:模拟人眼视觉,解锁三维感知新可能

在三维感知技术快速迭代的现在&#xff0c;深度相机作为机器获取空间信息的重要“眼睛”&#xff0c;已渗透到工业自动化、机器人导航、AR/VR、智能家居等多个领域。其中&#xff0c;双目深度相机凭借其被动式工作、成本可控、强光适应性强等独特优势&#xff0c;成为中远距离三…...

K230开发板避坑指南:RGB灯珠共阳/共阴判断方法与GPIO驱动配置详解

K230开发板RGB灯珠实战手册&#xff1a;从电路原理到驱动安全的完整解决方案 1. 硬件工程师必须掌握的LED基础认知 当你第一次拿到K230开发板时&#xff0c;那颗小巧的RGB灯珠可能看起来微不足道&#xff0c;但正是这个看似简单的元件&#xff0c;往往成为硬件调试路上的第一个…...

按 Token 计费是个坑?企业级 Agent 的 FinOps 成本控制策略

按 Token 计费是个坑?企业级 Agent 的 FinOps 成本控制策略 关键词 Token 计费 企业级 Agent FinOps 成本控制 大语言模型(LLM) prompt 工程 资源优化 摘要 随着大语言模型(LLM)在企业中的广泛应用,Token计费模式已成为AI应用成本的主要组成部分。本文深入探讨了企业级Agen…...

Sign in with Apple 隐私保护深度解析:从用户隐藏邮箱到服务器端验证的完整数据流

Sign in with Apple 隐私保护深度解析&#xff1a;从用户隐藏邮箱到服务器端验证的完整数据流 当用户点击"通过Apple登录"按钮时&#xff0c;背后发生的是一套精密的隐私保护机制。苹果设计的这套系统不仅简化了登录流程&#xff0c;更重要的是重构了传统OAuth流程中…...

Alienfx-tools:超越AWCC的Alienware硬件控制开源方案

Alienfx-tools&#xff1a;超越AWCC的Alienware硬件控制开源方案 【免费下载链接】alienfx-tools Alienware systems lights, fans, and power control tools and apps 项目地址: https://gitcode.com/gh_mirrors/al/alienfx-tools Alienfx-tools是一款专为Alienware设备…...

批量TXT去重工具使用说明:单独去重或合并去重,支持忽略空行/忽略大小写/遍历子目录/保持目录结构/编码检测

【批量TXT去重工具】用于批量处理 TXT 文件的按行去重与合并输出&#xff0c;适合名单清洗、关键词整理、链接去重、日志行去重、素材文案去重等场景。支持拖拽输入、遍历子目录、保持原路径结构、多线程并行处理&#xff0c;并提供详细统计。 一、支持的输入方式 1&#xff…...

如何用Obsidian Projects实现知识管理的可视化革命?[特殊字符]

如何用Obsidian Projects实现知识管理的可视化革命&#xff1f;&#x1f680; 【免费下载链接】obsidian-projects Plain text project planning in Obsidian 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-projects 你是否曾为散落在各处的笔记而烦恼&#xf…...

如何在 ngx-charts 中通过编程方式手动触发饼图 Tooltip

本文详解如何在 angular 中结合 ngx-charts 实现 tooltip 的主动控制&#xff08;如响应自定义图例悬停&#xff09;&#xff0c;包括正确访问 tooltip 模板、配置 tooltip 样式选项&#xff0c;以及绕过组件内部封装限制的实用方案。 本文详解如何在 angular 中结合 ngx-…...

SEONIB智能排期:让站点更新从偶然事件变成系统化的增长引擎

SEONIB智能排期&#xff1a;让站点更新从偶然事件变成系统化的增长引擎 我记得刚开始尝试用内容获取自然流量时&#xff0c;最困扰我的不是写不出文章&#xff0c;而是写出来的文章总像一场心血来潮的烟花表演——绚烂一阵&#xff0c;然后沉寂。我会因为一个热点&#xff0c;…...

Block Copy 的内存布局详解榔

核心摘要&#xff1a;这篇文章能帮你 ?? 1. 彻底搞懂条件分支与循环的适用场景&#xff0c;告别选择困难。 ?? 2. 掌握遍历DOM集合修改属性的标准姿势与性能窍门。 ?? 3. 识别流程控制中的常见“坑”&#xff0c;并学会如何优雅地绕过去。 ?? 主要内容脉络 ?? 一、痛…...