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

分⽀和循环:C语言的脊柱

序言在C语言中分支条件判断和循环重复执行是程序逻辑的核心二者共同构成了代码的“脊柱”决定了程序的执行流程。我们可以使⽤if、switch实现分⽀结构使⽤for、while、do while实现循环结构。1.if语句if 语句的语法形式如下if ( 表达式 ) 语句表达式成⽴为真则语句执⾏表达式不成⽴为假则语句不执⾏在C语⾔中0为假⾮0表⽰真也就是表达式的结果如果是0则语句不执⾏表达式的结果如果不是0则语句执⾏。例⼦输⼊⼀个整数判断是否为奇数#include stdio.h int main() { int num 0; scanf(%d, num); if(num % 2 1) printf(%d 是奇数\n, num); return 0; }1.1else如果⼀个数不是奇数那就是偶数了如果任意⼀个整数我们要清楚的判断是奇数还是偶数怎么表⽰呢 这⾥就需要 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); else printf(%d 是偶数\n, num); return 0; }1.2嵌套if在if else语句中else可以与另⼀个if语句连⽤构成多重判断。⽐如要求输⼊⼀个整数判断输⼊的整数是0还是正数或者负数。请看如下代码#include stdio.h int main() { int num 0; scanf(%d, num); if(num 0) printf(输⼊的数字是0\n); else if(num 0) //这⾥的if 相当于嵌套在els语句中形成了嵌套结构 printf(输⼊的数字是正数\n); else printf(输⼊的数字是负数\n); return 0; }如果有多个if和else可以记住这样⼀条规则else总是跟最接近的if匹配。2.关系操作符1.⼤于运算符2.⼤于等于运算符3. ⼩于等于运算符4. 相等运算符5.! 不相等运算符注意相等运算符 与赋值运算符 是两个不⼀样的运算符不要混淆。有时候可能会不⼩⼼写出下⾯的代码它可以运⾏但很容易出现意料之外的结果。3.条件运算符条件操作符也叫三⽬操作符需要接受三个操作数的形式如下1 exp1 ? exp2 : exp3条件操作符的计算逻辑是如果exp1为真 取exp2 计算计算的结果是整个表达式的结果如果 exp1 为假 取exp3计算计算的结果是整个表达式的结果。#include stdio.h int main() { int a 0; int b 0; scanf(%d %d, a, b); if (a 5) b 3; else b -3; printf(%d\n, b); return 0; } 改造后 #include stdio.h int main() { int a 0; int b 0; scanf(%d, a); b a5 ? 3:-3; printf(%d\n, b); return 0; }4.逻辑操作符 , || , 1.||或运算符就是或者的意思两侧⾄少有⼀个表达式为真则为真否则为假2.与运算符就是并且的意思两侧的表达式都为真则为真否则为假3.! 逻辑取反运算符改变单个表达式的真假如果flag为真!flag就是假如果flag为假!flag 就是真5. switch 语句除了if语句外C语⾔还提供了switch语句来实现分⽀结构。switch语句是⼀种特殊形式的if...else结构⽤于判断条件有多个结果的情况。它把多重的else if改成更易⽤、可读性更好的形式。switch (expression) { case value1: statement case value2: statement default: statement }上⾯代码中根据表达式expression 必须为整型不同的值执⾏相应的case 分⽀case后的值必须是整形常量表达式。如果找不到对应的值就执⾏ default 分⽀。case 和后边的数字之间必须有空格每⼀个 case 语句中的代码执⾏完成后需要加上 break 才能跳出这个switch语句否则将继续执行下面的case5.1switch语句中的default在使⽤switch语句的时候我们经常可能遇到⼀种情况⽐如switch后的表达式中的值⽆法匹配代码中的case语句的时候这时候要不就不做处理要不就得在switch语句中加⼊default ⼦句加了遇到没有的case就会执行default#include stdio.h int main() { int day 0; scanf(%d, day); switch(day) { case 1 case 2: case 3: case 4: case 5: printf(⼯作⽇\n); break; case 6: case 7: printf(休息⽇\n); break; default: printf(输⼊错误\n); break; } return 0; }在switch语句中case语句和default语句是没有顺序要求的只要你的顺序是满⾜实际需求的就可以6.while循环while 如果while括号中的为真将进入循环循环一次后将重新进行一次判断如果还为真将继续执行一直为真会一直循环陷入死循环为假将不执行循环直接跳过#include stdio.h int main() { while(1) printf(hehe\n); //while后边的条件满⾜死循环的打印hehe return 0; }7.for循环for循环是三种循环中使⽤最多的for循环的语法形式如下for(表达式1; 表达式2; 表达式3)表达式1 ⽤于循环变量的初始化表达式2 ⽤于循环结束条件的判断表达式3 ⽤于循环变量的调整#include stdio.h int main() { int i 0; for(i1; i10; i) { printf(%d , i); } return 0; }8.do-while 循环在循环语句中do while语句的使⽤最少它的语法如下do 语句 while(表达式)while和for这两种循环都是先判断条件如果满⾜就进⼊循环执⾏循环语句如果不满⾜就跳出循环⽽do while循环则是先直接进⼊循环体执⾏循环语句然后再执⾏while后的判断表达式表达式为真就会进⾏下⼀次表达式为假则不再继续循环。8.1continuecontinue是继续的意思在循环中的作⽤就是跳过本次循环中 continue后边的代码继续进⾏下⼀次循环的判断#include stdio.h int main() { int i 1; while(i10) { if(i 5) continue; //当i等于5后就执⾏continue直接跳过continue的代码去循环的判断的地⽅ //因为这⾥跳过了i i1所以i⼀直为5程序陷⼊和死循环 printf(%d , i); i i1; } return 0; }9.goto语句C语⾔提供了⼀种⾮常特别的语法就是goto语句和跳转标号goto语句可以实现在同⼀个函数内跳转到设置好的标号处。#include stdio.h int main() { printf(hehe\n); goto next: printf(haha\n); next: printf(跳过了haha的打印\n); return 0; }

相关文章:

分⽀和循环:C语言的脊柱

序言 在C语言中,分支(条件判断)和循环(重复执行)是程序逻辑的核心,二者共同构成了代码的“脊柱”,决定了程序的执行流程。我们可以使⽤ if 、 switch 实现分⽀结构,使⽤ for 、 whi…...

Linux 系统中,uv 是一款由 Rust 编写的超高速 Python 包管理与虚拟环境工具

在 Linux 系统中,uv 是一款由 Rust 编写的超高速 Python 包管理与虚拟环境工具,旨在替代传统的 pip、virtualenv 等工具,号称能带来 10-100 倍的性能提升。 🔧 核心功能与常用命令场景命令说明安装curl -LsSf https://astral.sh/u…...

大数据领域Spark的集群网络优化

大数据领域Spark的集群网络优化关键词:大数据、Spark、集群网络、网络优化、性能提升摘要:本文聚焦于大数据领域中Spark集群网络的优化问题。在大数据处理场景下,Spark作为主流的分布式计算框架,其集群网络性能对整体计算效率有着…...

SAP UI5中DOMParser解析XML关键步骤

SAP UI5框架中基于DOMParser的XML数据解析机制涉及多个关键环节&#xff0c;这些步骤共同构成了元数据解析的核心流程。根据技术文档分析&#xff0c;其关键实现步骤如下&#xff1a; 1. 解析器实例化与初始化 var xmlParse function (text) {/// <summary>Returns an…...

2026软考资料,看这一份就够了

2026年软考5月战役即将打响&#xff0c;备考黄金期已至&#xff01;我将近年备考中精心筛选、整理的各科目资料&#xff08;均整理自互联网公开资源&#xff09;无偿开放分享&#xff0c;希望能为各位考友助一臂之力&#xff0c;一起冲刺通关&#xff01;&#x1f4da; 目前资料…...

面试官:MCP 与 Skills 有什么区别?

1️⃣面向对象不同 MCP 是大模型与外部世界的标准化连接协议&#xff0c;负责打通边界&#xff0c;让大模型能安全、统一地调用外部工具。 Skills 是行为规范层&#xff0c;是面向 Cursor 等 AI 编程工具的模块化、可复用能力封装机制。核心是把标准作业流程固化成可复用的技…...

RAG检索瓶颈突破实战指南(非常详细),Multi-HyDE与Adaptive HyDE从入门到精通,收藏这一篇就够了!

在检索增强生成&#xff08;RAG&#xff09;系统中&#xff0c;检索准确性是决定最终生成效果的关键瓶颈。传统的稠密检索往往受限于查询与文档之间的语义鸿沟&#xff08;Semantic Gap&#xff09;。为了解决这一问题&#xff0c;Hypothetical Document Embeddings&#xff08…...

大模型百万Token长上下文训练教程(非常详细),上下文并行与Ring Attention从入门到精通,收藏这一篇就够了!

只用了几年时间&#xff0c;上下文窗口就从 4k 膨胀到 1000 万。Meta 发布的 Llama 4 Scout 的时候说这个模型支持 1000 万 Token&#xff0c;是 Llama 3 那 128k 的 78 倍。而Google Gemini 3 Pro 是 100 万&#xff0c;Claude 4 也桐乡市100万。 一次推理跑完整个代码库、几…...

大模型+知识图谱行业落地(非常详细),民航维修检索生成从入门到精通,收藏这一篇就够了!

摘要&#xff1a;本研究创新性地融合大语言模型、知识图谱技术及重排序方法&#xff0c;旨在以低成本、高质量实现民航维修历史方案检索与推荐方案生成&#xff0c;优化维修决策&#xff0c;提升维修效率与质量。研究利用大模型的分析推理能力&#xff0c;借助定制化知识图谱检…...

专用业务信息平台(SBISP)(之三)--SMP(软件制作平台)语言基础知识之八十

专用业务信息平台&#xff08;SBISP&#xff09;&#xff08;之一&#xff09;--SMP&#xff08;软件制作平台&#xff09;语言基础知识之八十 专用业务信息平台&#xff08;SBISP&#xff09;&#xff08;之二&#xff09;--SMP&#xff08;软件制作平台&#xff09;语言基础…...

在AIStudio星河社区配置OpenClaw小龙虾

很多人都在热捧小龙虾OpenClaw 很多人都在使用小龙虾 很多人被小龙虾拔掉了底裤..... 所以小龙虾还是不能在自己的工作机器上安装&#xff0c;最好是用一台云端机器&#xff0c;万一出了安全问题&#xff0c;损失能小一点。 尝试在AIStudio星河社区配置OpenClaw小龙虾 参考…...

C语言之数据结构初见篇(2):顺序表之通讯录的实现

目录 一、基本概念 二、通俗理解 三、这个程序是什么 1. 数据结构 2. 核心功能 四、通讯录代码的实现 1.多个文件的创建 一、基本概念 顺序表实现的通讯录是一种基于数组结构的联系人信息管理系统。它将数据结构的理论知识&#xff08;顺序表&#xff09;应用到实际场景…...

2026年软著申请被驳回的五大高频原因深度解析

随着软件开发工具的迭代升级&#xff0c;2026年的软件著作权登记审查工作也进入了精细化阶段。很多开发者与企业往往认为只要提交了材料就能顺利拿证&#xff0c;却忽视了审查中心对“独创性”与“一致性”的严格把控。近期&#xff0c;因代码雷同、文档逻辑断裂等问题导致的驳…...

Winform基于PaddleOCR图片文字提取方法

1.目的掌握Winform下基于Sdcb. PaddleOCR和OpenCvSharp实现图片文字的提取方法。⒉编程软件Visual Studio 2022⒊界面设计如下图设计了UI界面&#xff0c;包括使用Button、PictureBox和RichTextBox控件&#xff1a;本案例以下图特定图片为案例进行文字提取&#xff1a;⒋代码简…...

问题记录,JMeter运行一次有时候显示两次请求?

当使用http协议访问www.itcast.com时&#xff0c;结果树中有两次请求当使用https协议访问www.itcast.com时&#xff0c;结果树中有一次请求核心表现&#xff1a;在JMeter中创建单个HTTP请求&#xff08;如配置http://xxx.com&#xff09;&#xff0c;点击“运行”按钮后&#x…...

SLAM算法(ROS入门)

SLAM 建图 ​ 机器人研究的问题包含许许多多的领域&#xff0c;我们常见的几个研究的问题包括&#xff1a;建图(Mapping)、定位(Localization)和路径规划&#xff08;Path Planning&#xff09;&#xff0c;如果机器人带有机械臂&#xff0c;那么运动规划&#xff08;Motion P…...

[Java EE 进阶] 一文吃透 Spring IoCDI:核心概念 + 实战用法 + 面试考点(上篇)

一.IOC&DI 介绍1. 传统程序开发 的问题 : 高耦合以 “造一辆车” 为例&#xff0c;传统开发中对象的创建和依赖关系由自身控制&#xff1a;汽⻋依赖⻋⾝&#xff0c;⻋⾝依赖底盘&#xff0c;底盘依赖轮 ;所有的对象都通过 new 手动创建 ; 当底层组件(如轮胎尺寸) 发生变化…...

计网相关协议3

DNS查询&#xff1a;查找域名对应IP&#xff08;先浏览器缓存、本地hosts、路由器缓存&#xff0c;再递归/迭代DNS服务器查询&#xff09;。...

2026年知网AIGC检测算法又升级了,降AI方法得跟着变

2026年知网AIGC检测算法又升级了&#xff0c;降AI方法得跟着变 知网在2025年底对AIGC检测系统做了一次大升级。如果你还在用去年的降AI方法&#xff0c;大概率过不了了。这篇说说升级了哪些地方&#xff0c;现在该怎么应对。 这次升级改了什么 根据最近的实测数据和公开信息…...

FLV 流解剖学:e-flv 如何用 Go 构建轻量级诊断工具

FLV 流解剖学&#xff1a;e-flv 如何用 Go 构建轻量级诊断工具 项目仓库&#xff1a;https://github.com/veovera/enhanced-rtmp 文档来源&#xff1a;GitHub Discussion #50 版本&#xff1a;早期实验版&#xff08;WIP&#xff09; &#x1f4cc; 项目概述 e-flv 是 Enhance…...

第3篇:Spring Boot + WebSocket + 消息队列STOMP协议发布订阅模式 实现多频道实时消息广播

基于发布&#xff0c;订阅&#xff0c;主题 模式&#xff0c;实现原理图前提&#xff1a;环境已经搭建好&#xff0c;具体看第二篇1 maven依赖&#xff0c;springboot 版本 3.3.1<!-- 核心包 --><dependency><groupId>org.springframework.boot</groupId…...

性能监控之 blackbox_exporter+Prometheus+Grafana 实现网络探测

文章目录一、什么是黑盒监控&#xff1f;二、blackbox_exporter 简介三、安装1、二进制包2、docker四、使用原理五、几种应用场景1、ICMP 测试&#xff08;主机探活&#xff09;2、TCP 测试&#xff08;监控主机端口存活状态&#xff09;3、HTTP检测&#xff08;监控网站状态&a…...

好软推荐-自用软件

目录导航PC应用OFFICE办公系列万彩办公大师http://www.wofficebox.com/办公必备的小工具百宝箱。iSlide插件PPT插件 [https://www.islide.cc/](https://www.islide.cc/)官方口号&#xff1a;让PPT设计简单起来&#xff01;方方格子Excel插件 [http://www.ffcell.com/](http://w…...

【2026最新版】PCL点云处理算法汇总(C++长期更新版)

博客长期更新&#xff0c;最近一次更新时间为&#xff1a;2026年3月12日。 copy pcl::copyPointCloud(*cloud, indicesY, *cloud_yboundary);read pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);if (pcl::io::loadPCDFile<…...

JMM——Java内存模型简介

JMM介绍JMM是基于CPU缓存模型实现的一套Java内存管理程序&#xff0c;都在于解决多核情况下的缓存同步问题。它定义了主存和工作内存的抽象概念&#xff0c;底层对应着CPU寄存器、高速缓存、RAM、CPU指令优化等。CPU缓存模型JMM特性可见性&#xff1a;volatile可以保证不同线程…...

多模态跟踪怎么搞?清华西电TPAMI 2025新方法深度解析,从小白到大神,吃透这一篇就够了!

创新点 针对轻量化多模态跟踪器性能骤降的问题&#xff0c;设计了覆盖四大核心阶段的教师 - 学生知识蒸馏框架&#xff0c;首次将跨模态知识蒸馏与 Transformer 基多模态跟踪深度结合。突破传统随机掩码的局限性&#xff0c;基于教师模型的注意力权重划分模态公共、模态特定、…...

C#毕业设计——基于C#+asp.net+SVG的基于SVG的自动站雨量分析系统设计与实现(毕业论文+程序源码)——雨量分析系统

基于C#asp.netSVG的基于SVG的自动站雨量分析系统设计与实现&#xff08;毕业论文程序源码&#xff09; 大家好&#xff0c;今天给大家介绍基于C#asp.netSVG的基于SVG的自动站雨量分析系统设计与实现&#xff0c;文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报…...

C#毕业设计——基于C#+asp.net+SQL server的通用作业批改系统设计与实现(毕业论文+程序源码)——作业批改系统

基于C#asp.netSQL server的通用作业批改系统设计与实现&#xff08;毕业论文程序源码&#xff09; 大家好&#xff0c;今天给大家介绍基于C#asp.netSQL server的通用作业批改系统设计与实现&#xff0c;文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板…...

C#毕业设计——基于C#+asp.net+SQL Server的课程指导平台设计与实现(毕业论文+程序源码)——课程指导平台

基于C#asp.netSQL Server的课程指导平台设计与实现&#xff08;毕业论文程序源码&#xff09; 大家好&#xff0c;今天给大家介绍基于C#asp.netSQL Server的课程指导平台设计与实现&#xff0c;文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答…...

大模型有了“身体”后,我用1分钟创造了一个AI美食专家

一、引言 &#xff1a;从今晚吃什么开始 在这个互联网几乎能解决一切问题的时代&#xff0c;我们搜菜谱、看教程、点外卖&#xff0c;但厨房里的孤独感和手忙脚乱&#xff0c;似乎从未消失。 晚上7点&#xff0c;下班回家。打开冰箱&#xff1a;有西红柿、鸡蛋、青椒、一块肉…...