C语言(3)—分支和循环
文章目录
- 一、程序的基本结构
- 二、分支结构
- 1. if语句
- 2. if-else语句
- 三、关系与逻辑运算符
- 1. 关系运算符
- 2. 逻辑运算符
- 四、条件运算符(三目运算符)
- 五、switch语句
- 六、循环结构
- 1. while循环
- 2. for循环
- 七、循环控制语句
- 1. break
- 2. continue
- 八、循环嵌套
- 九、goto语句
- 十、总结
一、程序的基本结构
C语言作为结构化程序设计语言,支持三种基本结构:
顺序结构:代码按顺序逐行执行选择结构:根据条件选择执行不同的代码块循环结构:重复执行某段代码直到满足特定条件
这些结构的组合可以解决几乎所有编程问题。
二、分支结构
1. if语句
if语句是最基本的选择结构,语法形式如下:
if (表达式) 语句;
#include <stdio.h>
int main() {int num = 0;scanf("%d", &num);if(num % 2 == 1)printf("%d 是奇数\n", num);return 0;
}
2. if-else语句
if (表达式)语句1;
else语句2;
#include <stdio.h>
int main() {int num = 0;scanf("%d", &num);if(num % 2 == 1)printf("%d 是奇数\n", num);elseprintf("%d 是偶数\n", num);return 0;
}
三、关系与逻辑运算符
1. 关系运算符
C语言提供6种关系运算符:
> 大于< 小于>= 大于等于<= 小于等于== 相等!= 不相等
注意:==(相等判断)与=(赋值)的区别,常见错误:
if (x = 3) // 错误!将3赋值给x,表达式结果永远为真
2. 逻辑运算符
&& 逻辑与:两侧表达式都为真时结果为真|| 逻辑或:两侧至少一个为真时结果为真! 逻辑非:对表达式结果取反
示例:判断季节
int month = 0;
scanf("%d", &month);
if(month >= 3 && month <= 5) {printf("春季\n");
} else if(month == 12 || month == 1 || month == 2) {printf("冬季\n");
}
四、条件运算符(三目运算符)
语法:exp1 ? exp2 : exp3如果exp1为真,则整个表达式值为exp2,否则为exp3。
示例:求两数较大值
#include <stdio.h>
int main() {int a = 0, b = 0;scanf("%d %d", &a, &b);int m = a > b ? a : b;printf("%d\n", m);return 0;
}
五、switch语句
switch (expression) {case value1: statement; break;case value2: statement; break;default: statement;
}
注意事项:expression必须是整型表达式case后必须是整型常量每个case后通常需要break,否则会继续执行后续case
六、循环结构
1. while循环
while (表达式)语句;
2. for循环
for (表达式1; 表达式2; 表达式3)语句;
七、循环控制语句
1. break
#include <stdio.h>
int main() {for(int i = 1; i <= 10; i++) {if(i == 5) break;printf("%d ", i);}// 输出:1 2 3 4return 0;
}
2. continue
#include <stdio.h>
int main() {for(int i = 1; i <= 10; i++) {if(i == 5) continue;printf("%d ", i);}// 输出:1 2 3 4 6 7 8 9 10return 0;
}
八、循环嵌套
循环内可以包含其他循环,常用于处理多维问题。
示例:找出100-200之间的素数
#include <stdio.h>
int main() {for(int i = 100; i <= 200; i++) {int flag = 1; // 假设是素数for(int j = 2; j < i; j++) {if(i % j == 0) {flag = 0;break;}}if(flag) printf("%d ", i);}return 0;
}
九、goto语句
#include <stdio.h>
int main() {printf("hehe\n");goto next;printf("haha\n");next:printf("跳过了haha的打印\n");return 0;
}
十、总结
分支和循环是C语言编程的基础,掌握它们对编写高效、清晰的代码至关重要。本文详细介绍了:
各种分支结构(if、if-else、switch)的使用场景和注意事项三种循环结构(while、for、do-while)的特点和适用情况循环控制语句(break、continue)的正确使用
关系与逻辑运算符的运用技巧
通过大量实例代码,希望您能深入理解这些概念,并在实际编程中灵活运用。记住,良好的代码结构和适当的注释同样重要,这能使您的代码更易读、易维护。
编程练习建议:
尝试用不同循环结构实现相同功能,比较优缺点编写一个计算器程序,使用switch处理不同运算实现九九乘法表的打印编写程序判断用户输入的数字是否为回文数掌握这些基础知识后,您将能够处理更复杂的编程问题,为学习更高级的C语言特性打下坚实基础。
相关文章:
C语言(3)—分支和循环
文章目录 一、程序的基本结构二、分支结构1. if语句2. if-else语句 三、关系与逻辑运算符1. 关系运算符2. 逻辑运算符 四、条件运算符(三目运算符)五、switch语句六、循环结构1. while循环2. for循环 七、循环控制语句1. break2. continue 八、循环嵌套九…...
【MCP】从一个天气查询服务带你了解MCP
1. 前言 这篇文章将通过一个集成高德天气查询的 MCP Server 用例,带你上手开发自己的 MCP Server ,文章将通过以下三种方式(自己编写 Client 端代码,使用 mcp-cli 自带页面,集成到 Claude 桌面版等)带你测试自己的 MC…...
【Leetcode 每日一题】3392. 统计符合条件长度为 3 的子数组数目
问题背景 给你一个整数数组 n u m s nums nums,请你返回长度为 3 3 3 的 子数组,满足第一个数和第三个数的和恰好为第二个数的一半。 子数组 指的是一个数组中连续 非空 的元素序列。 数据约束 3 ≤ n u m s . l e n g t h ≤ 100 3 \le nums.length…...
SALOME源码分析:Geomtry模块
本文分析SALOME Geometry模块。 一、核心组件 1.1 GeometryGUI 二、关键流程 三、插件 3.1 插件接口 GEOMPluginGUI定义了Geometry可以加载的插件接口。 3.2 插件列表 插件命令描述 BasicGUI BlocksGUI BooleanGUI BuildGUI DisplayGUI EntityGUI GenerationGUI GEOM…...
力扣HOT100之链表:23. 合并 K 个升序链表
这道题我是用最淳朴最简单的思路去做的,用一个while循环持续地将当前遍历到的最小值加入到合并链表中,while循环中使用一个for循环遍历整个指针数组,将其中的最小值和对应下标记录下来,并将其值加入到合并链表中,同时对…...
ArkTS 组件 通用事件 通用属性 速查表
ArkTS 组件 组件 通用事件 速查表 通用事件事件名称简要说明点击事件onClick(event: Callback<ClickEvent>, distanceThreshold: number): T相较于原有 onClick 接口,新增 distanceThreshold 参数作为点击事件移动阈值,当手指的移动距离超出所设…...
SOAP API 和 REST API
SOAP API 和 REST API 是两种主流的 Web 服务通信架构,它们在设计理念、数据格式、协议支持和应用场景上有显著差异。以下是两者的核心对比及典型应用场景: 1. 核心概念与设计哲学 特性SOAP APIREST API本质协议(基于 XML 的标准化协议&…...
简单了解Java的I/O流机制与文件读写操作
一、理解Java的I/O流机制 字节流 Java中的字节流主要由 InputStream 和 OutputStream 这两个抽象类及其子类构成。字节流以字节(byte)为基本处理单元,适用于处理所有类型的数据,包括文本、图片、音频、视频等。 1. InputStream…...
PCIe 转 U.2 接双硬盘指南 - 超微(Supermicro)主板
前言 公司服务器空间不够想扩容,尝试折腾了下超微(Supermicro)服务器的 PCIe 转 U.2,踩了一点小坑,特地写下来给大家参考一下。 现在市面上 U.2 接口的企业级固态硬盘相对其他类型接口的固态硬盘 便宜很多 ÿ…...
【上位机——MFC】文档
相关类 CDocument提供了一个用于管理数据的类,封装了关于数据的管理(数据提取、数据转换、数据存储等),并和视图类进行数据交互。 文档类使用 定义一个自己的文档类,派生自CDocument 程序的创建过程 1.利用框架类对象地址pFrame调用Load…...
JavaEE-多线程实战02
接上 多线程编程实战01 第三个多线程程序 package thread.test;//定义了一个叫MyThread3的类,实现了Runable接口,所以它必须重写run()方法 class MyThread3 implements Runnable {Overridepublic void run() {//线程执行的具体内容//进入一个无限循环,…...
计算机网络 | 应用层(6) -- 套接字编程
💓个人主页:mooridy 💓专栏地址:《计算机网络:自顶向下方法》 大纲式阅读笔记_mooridy的博客-CSDN博客 💓本博客内容为《计算机网络:自顶向下方法》第二章应用层第七节知识梳理 关注我…...
基于大模型的急性肠套叠全流程预测与诊疗方案研究报告
目录 一、引言 1.1 研究背景与目的 1.2 研究意义与创新点 二、急性肠套叠概述 2.1 定义与分类 2.2 病因与发病机制 2.3 流行病学特征 三、大模型技术原理与应用现状 3.1 大模型基本原理 3.2 在医疗领域的应用案例 3.3 用于急性肠套叠预测的可行性分析 四、术前风险…...
游戏遭遇DDoS攻击如何快速止损?实战防御策略与应急响应指南
是不是很抽象 我自己画的 一、游戏DDoS攻击特征深度解析 游戏行业DDoS攻击呈现复合型特征,2023年监测数据显示,针对游戏服务器的攻击中,63%采用UDP反射放大HTTP慢速攻击组合,攻击峰值达3.2Tbps。攻击者利用游戏协议特性ÿ…...
Linux电源管理(2)_常规的电源管理的基本概念和软件架构
原文: Linux电源管理(2)_Generic PM之基本概念和软件架构 1. 前言 Linux系统中那些常规的电源管理手段,包括关机(Power off)、待机(Standby or Hibernate)、重启(Reboot)等。这些…...
回文链表力扣234
思路: 对于这个题同样的找出题目的要求 1.判断回文 那么我们思考一下判断回文的方法,对于字符串我们只需要翻转一下就行,但是这不是通用的方法,在思考一下,我们是不是可以用双指针,一个在前一个在后,向中…...
互联网的下一代脉搏:深入理解 QUIC 协议
互联网的下一代脉搏:深入理解 QUIC 协议 互联网是现代社会的基石,而数据在其中高效、安全地传输是其运转的关键。长期以来,传输层的 TCP(传输控制协议)一直是互联网的主力军。然而,随着互联网应用场景的日…...
榕壹云国际版短剧系统:基于Spring Boot+MySQL+UniApp的全球短剧创作平台
一、项目背景与简介 在短视频行业高速发展的今天,短剧内容已成为全球用户娱乐消费的新宠。为满足市场对高质量、多样化短剧的需求,我们基于Spring Boot + MySQL + UniApp技术栈开发了榕壹云国际版短剧系统,这是一款面向全球市场的短剧创作与分发平台。系统不仅提供丰富的基…...
为什么选择 Spring Boot? 它是如何简化单个微服务的创建、配置和部署的?
为什么选择 Spring Boot? Spring Boot 的核心目标就是简化 Spring 应用的初始搭建以及开发过程。它并不是要取代 Spring Framework,而是构建在其之上,通过一系列“约定优于配置”的原则和自动化手段,让开发者能够更快的创建出独立…...
方向倒数、梯度和梯度下降的对比关系
一、方向导数与梯度的定义 方向导数 方向导数描述多元函数在某点沿特定方向的变化率。对于函数f(x,y),在点(x0,y0)沿单位向量u(u1,u2)的方向导数定义为: 其物理意义是函数值沿该方向的瞬时变化速率,正负表示增减趋势,…...
全星APQP软件系统:驱动芯片半导体行业研发管理迈向高效与合规新高度
全星APQP软件系统:驱动芯片半导体行业研发管理迈向高效与合规新高度 在芯片半导体行业,一款芯片的研发周期长达数年,涉及设计验证、工艺开发、良率爬坡、量产交付等数百个关键节点,任何一个环节的偏差都可能导致数千万美元的损失…...
文章记单词 | 第50篇(六级)
一,单词释义 fun:英 [fʌn] 美 [fʌn],名词,意为 “享乐;乐趣;快乐;嬉戏;有趣的事;玩笑;逗乐”;形容词,意为 “逗乐的;有…...
RISC-V MCU定时器架构与低功耗设计
RISC-V核低功耗MCU在定时器架构和功耗控制方面具有以下特点: 定时器配置 高级控制定时器:支持互补PWM输出和刹车功能,适合电机控制等场景 通用定时器:提供输入捕获、输出比较和单脉冲模式等基础功能 系统定时器:内置6…...
redis_Windows中安装redis
①Windows安装包下载地址:https://github.com/tporadowski/redis/releases 当前最新版本截图 ②根据自己系统平台的实际情况选择对应的安装包,如:64位win10系统可选择Redis-x64-5.0.14.msi ③下载完成后运行安装,没有特殊要求的话…...
Spring中生成Bean的方式总结-笔记
1. 概略版 Spring生成Bean方式有如下几种,可根据需求选择合适的方式,通常优先使用注解驱动的声明式配置(如Component、Bean),复杂场景结合条件或作用域控制。 方式特点适用场景Component 组件扫描简单直观ÿ…...
学习insightface 的人脸识别
1.Insightface_pytorch版本的自定义数据准备过程 https://github.com/artintel/LearningCode/blob/master/insightface_pytorch_datasets_make/README.md https://github.com/artintel/LearningCode/tree/master/insightface_pytorch_datasets_make 2.mxnet_insightface开源…...
【MQ篇】RabbitMQ之消费失败重试!
目录 引言:消息不丢是底线,失败了优雅重试是修养!消费失败了,为啥不能老是原地复活?🤔智能重试策略一:本地重试(Spring Retry 的魔法)🏠✨智能重试策略二&…...
权力结构下的人才价值重构:从 “工具论” 到 “存在论” 的转变
引言 在现在的公司管理里,常常能听到这样一种说法:“我用你,你才是人才;不用你,你啥都不是。” 这其实反映了一种很常见的评判人才价值的标准,就是只看公司的需求,把人才当作实现公司目标的工…...
【上位机——MFC】视图
相关类 CView及其子类,父类为CWnd类,封装了关于视图窗口的各种操作,以及和文档类的数据交互。 视图窗口的使用 1.定义一个自己的视图类(CMyView),派生自CView,并重写父类成员纯虚函数OnDraw。 2.其余框架类和应用程…...
Unity:Sprite Shapes(精灵形状)
游戏世界的基本构建单位——精灵(Sprite) Sprite(精灵)是什么? Sprite指的是一张小图片,在游戏里代表一个角色、道具、背景元素。 在2D游戏里,比如滑雪游戏,角色、小树、雪地……很…...
火语言RPA--钉钉群通知
【组件功能】:向钉钉群发送文本或markdown消息 在钉钉群创建自定义机器人(Webhook),在组件配置Webhook地址、密钥、文本内容即可向钉钉群发送文本或markdown消息,还可以at群成员或所有人。 配置预览 配置说明 Webho…...
详细图解 Path-SAM2: Transfer SAM2 for digital pathology semantic segmentation
✨ 背景动机 数字病理中的语义分割(semantic segmentation)是非常关键的,比如肿瘤检测、组织分类等。SAM(Segment Anything Model)推动了通用分割的发展,但在病理图像上表现一般。 病理图像(Pa…...
驯龙日记:用Pandas驾驭数据的野性
引言:为什么选择Pandas? "NumPy是手术刀,Pandas是急救箱" 手术刀(NumPy):精密的数值计算 急救箱(Pandas):处理现实数据的全套工具 维度NumPy数组Pandas Se…...
产品经理面经(1)
今天开一个新的栏目,是关于产品经理方面的。产品经理这个岗位每年的需求都是不少的,尤其是近年来AI的兴起造就了产品经理与AI方面深度融合从而催生了“AI产品经理”这种类型的岗位。具体数据如下 总体规模: 2020 年:受疫情影响&am…...
【黑马JavaWeb+AI知识梳理】前端Web基础02 - JS+Vue+Ajax
JS(行为/交互效果) JavaScript(JS)跨平台、面向对象,是用来控制网页行为,实现页面交互效果的脚本语言。 和Java完全不同,但基础语法类似。 组成: ECMAScript:规定了JS…...
Unity Post Processing 小记 【使用泛光实现灯光亮度效果】
一、前言 本篇适用于Unity 2018 - 2019及以上版本,以默认渲染管线为例。文章内容源于个人研究尝试与网络资料收集,可能存在不准确之处。初衷是因新版本制作时老的Bloom插件失效,经研究后分享开启Bloom效果的方法。若在项目中使用Post Proces…...
NFC 碰一碰发视频贴牌技术,音频功能的开发实践与技术解析
在数字化营销与信息交互场景中,NFC 碰一碰技术凭借其便捷性和高效性,成为快速传递多媒体内容的新选择。通过 NFC 实现视频音频的快速传输,不仅能提升用户体验,还能为各类场景带来创新应用。本文将深入探讨该功能开发过程中的关键技…...
新型“电力寄生虫“网络钓鱼攻击瞄准能源企业与知名品牌
本周发布的综合威胁报告显示,自2024年以来,一场名为"电力寄生虫"(Power Parasites)的复杂网络钓鱼活动持续针对全球能源巨头和知名品牌展开攻击。 该攻击活动主要通过精心设计的投资骗局和虚假招聘信息,冒用…...
如何将数据输入到神经网络中
引言 在前面的文章学习中,我们初步了解到神经网络在人工智能领域扮演着至关重要的角色,它具备实现真正人工智能的潜力。真正的人工智能意味着机器能够像人类一样进行感知、学习、推理和决策等复杂活动。而神经网络作为实现这一目标的关键技术,…...
【quantity】2 Unit 结构体(unit.rs)
一、源码 下面代码实现了一个基于类型级别的物理量单位系统,使用Rust的类型系统在编译期保证单位运算的正确性。 use typenum::{Integer, Sum, Diff, Z0, // 0P1, P2, P3, P4, // 1, 2, 3, 4N1, N2, N3 // -1, -2, -3 }; use std::marker::PhantomData; use st…...
OpenCV 图形API(66)图像结构分析和形状描述符------将一条直线拟合到三维点集上函数fitLine3D()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 拟合一条直线到3D点集。 该函数通过最小化 ∑iρ(ri) 来将一条直线拟合到3D点集,其中 ri 是第 i 个点与直线之间的距离,…...
uniapp: 低功耗蓝牙(BLE)的使用
在微信小程序中实现蓝牙对接蓝牙秤的重量功能,主要依赖微信小程序提供的低功耗蓝牙(BLE)API。以下是一个清晰的步骤指南,帮助你完成从连接蓝牙秤到获取重量数据的开发流程。需要注意的是,具体实现可能因蓝牙秤的协议和…...
谢飞机的Java面试之旅:从Spring Boot到Kubernetes的挑战
场景:互联网大厂Java求职 在一家知名互联网大厂的面试现场,严肃的面试官坐在谢飞机的对面,开始了面试。 第一轮:基础技术与平台 面试官: 谢先生,您能简单介绍一下Java SE 8的主要新特性吗? 谢飞机: 当然,Java 8引入了Lambda表达式、Stream API和新的日期时间API。 …...
Shadertoy着色器移植到Three.js经验总结
Shadertoy是一个流行的在线平台,用于创建和分享WebGL片段着色器。里面有很多令人惊叹的画面,甚至3D场景。本人也移植了几个ShaderToy上的着色器。本文将详细介绍移植过程中需要注意的关键点。 1. 基本结构差异 想要移植ShaderToy的shader到three.js&am…...
基于BenchmarkSQL的OceanBase数据库tpcc性能测试
基于BenchmarkSQL的OceanBase数据库tpcc性能测试 安装BenchmarkSQL及其依赖安装软件依赖编译BenchmarkSQLBenchmarkSQL props文件配置数据库和测试表配置BenchmarkSQL压测装载测试数据TPC-C压测(固定事务数量)TPC-C压测(固定时长)生成测试报告重复测试流程梳理安装Benchmar…...
Flutter 泛型 泛型方法 泛型类 泛型接口
目录 泛型简单使用 泛型类的简单使用 泛型接口的使用 通俗理解:泛型就是解决 类 接口 方法的复用性、以及对不特定数据类型的支持(类型校验) 泛型简单使用 main(){print(getData2("XXX"));getData2<String>("XXX");getData2<int>(1);}Str…...
边缘函数:全栈开发的最后1毫秒性能革命
一、边缘计算的时空折叠术 1. 传统CDN vs. 智能边缘网络 全球电商平台实测数据: 场景云端处理延迟边缘处理延迟转化率提升搜索建议320ms8ms18%个性化推荐450ms12ms27%实时库存检查680ms9ms42%欺诈检测920ms15ms63% 二、边缘全栈架构的量子纠缠 1. 代码的时空分布…...
网店专用版批量转账系统,覆盖淘宝、拼多多、抖店订单信息自动核对+插旗自动备注,支持微信支付宝批量转账
不少电商人在运营过程中,需要用转账工具来解决日常运营过程中的返款问题。 但在实际操作过程中,往往有很多问题。东哥在这里梳理下,方便大家了解: 1.错返/漏返的情况时有发生 为什么会错返和漏返? 实际来看&#x…...
AUTOSAR_RS_ClassicPlatformDebugTraceProfile
AUTOSAR经典平台调试、跟踪与分析支持 AUTOSAR组件调试、跟踪与分析功能详解 目录 简介ARTI核心扩展 核心特定ARTI扩展结构核心参数定义 操作系统和任务扩展 OS特定ARTI扩展任务特定ARTI扩展软件组件特定扩展 总体架构 组件结构接口定义 错误处理 默认错误跟踪器(DET) 总结 1.…...
vue中将html2canvas转成的图片传递给后台 Python Flask 服务
下面将详细介绍如何在 Vue 项目里把 html2canvas 转换得到的图片传递给后台的 Python Flask 服务。 前端(Vue)步骤 1. 安装依赖 首先要确保已经安装了 html2canvas 和 axios,若未安装,可在终端执行以下命令: npm i…...