现在企业做门户网站/友情链接购买平台

现在企业做门户网站,友情链接购买平台,今日疫情最新公布,网站内容建设总结前言:C语言是由顺序结构、选择结构、循环结构组成的结构化的程序设计语言。 那C语言是如何设计和实现这些结构的呢?话不多说,马上开始。 三种结构如图所示: 我们可以使用 if else语句、 switch语句 来实现选择(分支&am…

前言:C语言是由顺序结构、选择结构、循环结构组成的结构化的程序设计语言。 那C语言是如何设计和实现这些结构的呢?话不多说,马上开始。

三种结构如图所示:

我们可以使用 if else语句、 switch语句 来实现选择(分支)结构,使用for 、 while 、 do while 来实现循环结构。

ps:本篇将先总结分支结构的知识,循环结构留到(下)篇。

看完觉得有帮助的话记得点赞收藏加关注哦~

目录

一、关系、条件、逻辑操作符

 二、if else 语句

三、switch语句

四、分支结构小练习:判断闰年


首先补充分支与循环必备操作符

一、关系、条件、逻辑操作符

(1)关系操作符:

C语⾔⽤于⽐较的表达式,称为“关系表达式”,⾥⾯使⽤的运算符就称为“关系运算符”,主要有下⾯6个。

>:⼤于运算符
<:⼩于运算符
>=: ⼤于等于运算符
<=:⼩于等于运算符
==: 相等运算符
!=: 不相等运算符

用法:用于比较两个值的大小或相等性,结果通常返回0或1,表示真假。

  • eg:20<25是正确的,结果返回1;25<20是错误的,结果返回0。

(2)条件操作符:

条件操作符需要接受三个参数,因此又叫三目操作符。形式如下(exp是表达式expression的缩写):

 exp1 ? exp2 : exp3

用法:如果exp1为真, exp2计算,计算的结果是整个表达式的结果;如果exp1为假, exp3计算,计算的结果是整个表达式的结果。

  • eg:1<2?1:0 exp1是1<2,结果为真,计算exp2,结果是本身。因此这个表达式最终的结果就是exp2的结果1。

(3)逻辑运算符

提供逻辑判断功能,⽤于构建更复杂的表达式,主要有下⾯三个运算符。

! :逻辑取反运算符(改变单个表达式的真假)。

&& :与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。
|| :或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。

  • eg:!0为非零表示真,1&&0为假,1||0为真。

 二、if else 语句

(1)结构:

if(表达式)语句1;
else语句2;

 执行流程:

  • step1:判断if中表达式的真假。
  • step2:表达式为真➡执行if中的语句1,跳过else。
  • step3:表达式为假➡跳过if,直接执行else中的语句2。

tips:上面的结构仅适用于单语句的情况,因为if和else只能控制一条语句,当分支中包含多条语句时要用大括号{}将多条语句括起来形成代码块

if(表达式)
{语句1;语句3;
}
else
{语句3;语句4;
}

 先看一个问题:输⼊⼀个分数,>=60分就输出:及格,<=60分就输出:不及格。

下面三种写法都可以解决这个问题

int score=0;
scanf("%d",&score);//输入一个成绩①if(score>=60)printf("及格");elseprintf("不及格");②if(score>=60)printf("及格");if(score<=60)printf("不及格");③if(score>=60)printf("及格");else if(score<=60)//嵌套ifprintf("不及格");

(2)嵌套if(else if)

在 if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断

#include <stdio.h>
int main()
{int num = 0;scanf("%d", &num);if(num > 0)printf("输⼊的数字是正数\n");else if(num < 0)                     printf("输⼊的数字是负数\n");//这⾥的if 相当于嵌套在else语句中,形成了嵌套结构elseprintf("输⼊的数字是0\n");return 0;
}

(3)悬空else问题

先看这样一段代码:

#include <stdio.h>
int main()
{int a = 0;int b = 2;if(a == 1)if(b == 2)printf("11\n");elseprintf("22\n");return 0;
}

大家觉得结果输出什么呢? 

小飞在初学阶段看到这段代码时本能的以为结果应该打印11,但实际上什么也不输出。

为什么会这样呢?这就是悬空else问题。分析如下:

在编写代码时,如果遇到多个if和else语句。需要注意一个规则:else总是与最接近的if匹配。有时候,代码的排版可能会让人产生误解,比如上面的else与第一个if对齐,从而误以为当第一个if条件不成立时,会执行else子句。但实际上,else是和第二个最近的if语句匹配,形成嵌套的if else语句。如果第一个if条件不成立,那么嵌套的if和else语句根本就没有机会执行,因此最终可能什么都不会打印。

为了让代码更容易理解,我们应该调整代码块(添加大括号),使else与其真正匹配的if语句关系更加清晰。

#include <stdio.h>
int main()
{int a = 0;int b = 2;if(a == 1){if(b == 2)printf("11\n");}else{printf("22\n");}return 0;
}

带上适当的⼤括号形成代码块,代码的逻辑就会更加的清晰,所以以后在写代码的时候要注意括号的使⽤,让代码的可读性更⾼。


三、switch语句

除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。switch语句可以看作是⼀种特殊形式的if else语句,⽤于判断条件有多个结果的情况。它把多重的 else if 改成更易⽤、可读性更好的形式。

(1)结构:

switch (表达式) 
{case value1:语句1;case value2: 语句2;default: 语句3;
}

上⾯结构中,根据表达式不同的值,执⾏相应的 case 分⽀。如果找不到对应的值,就执⾏ default 分⽀。
注意:

  • switch 后的(表达式)必须是整型表达式(可以是数值,也可以是表达式,如a+b,a,b均是变量)。
  • case 后的value值,必须是整形常量表达式(只能是数值,如1、2)。
  • case 和后边的数字之间必须有空格

(2)break和default

①break

每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句

eg:

写一个输入⼀个1~7的数字,打印对应的星期⼏的程序:

#include <stdio.h>
int main()
{int day = 0;scanf("%d", &day);switch (day){case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");break;case 7:printf("星期日\n");break;}return 0;
}

当然, break 也不是每个 case 语句都得有,这就得根据实际情况来看了。 

比如当判断星期几是工作日还是休息日时,我们可以只在星期五和星期日时写break,这样在遇到星期1~5时因为没有break 语句,代码会继续往下执⾏直到最后一个满足工作日的星期跳出。

#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;}return 0;
}

②default

在使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,⽐如 switch 后的表达式中的值⽆法匹配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊default ⼦句。switch 后边的表达式结果不是 value1 ,也不是 value2 的时候,就会执⾏default ⼦句
就⽐如上面打印星期的练习,如果 day 的输⼊不是1~7的值,如果我们要提⽰:输⼊错误,即可:

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;}

tips:switch语句中的case和default无顺序要求,只要顺序是满⾜实际需求的就可以。不过习惯把 default ⼦句放在最后处理。


四、分支结构小练习:判断闰年

输⼊⼀个年份year,判断year是否是闰年?

闰年判断的规则:
能被4整除并且不能被100整除是闰年,即满足year%4==0 && year%100!=0
能被400整除是闰年,即满足year%400==0

参考代码:

#include <stdio.h>
int main()
{int year = 0;scanf("%d", &year);if(year%4==0 && year%100!=0)printf("是闰年\n");else if(year%400==0)printf("是闰年\n");return 0;
}

 结语:非常感谢耐心看到这里的小伙伴,本文主要讲了分支与循环中的分支结构,它们是代码中的重要组成成分,是构建任何复杂结构的基石。下期主要围绕循环结构展开。本篇文章到此结束,我们下期再见!

如果上述内容对您有帮助的话,还请点赞收藏✿

如果发现内容有误,还请给予指正,十分感谢:>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/74837.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springboot学习笔记3.20

目录 1.实战篇第一课 我们将会在本次实战中学习到哪些知识点&#xff1f; 开发模式和环境搭建&#xff1a; 注册接口 1.Lombok 2.开发流程 1.controller层&#xff0c;这个层会指明访问路径和要执行的逻辑&#xff1a; 2.我们把返回结果根据接口文档包装成一个类result&a…

全新升级 | Built For You Spring ‘25 发布,Fin 智能客服实现新突破!

图像识别、语音交互、任务自动化&#xff0c;立即体验智能客服蜕变&#xff01; 上周&#xff0c;Intercom 举办了 Built For You Spring 25 发布会&#xff0c;正式揭晓了 AI Agent Fin 的一系列令人振奋的更新。Fin 正在以前所未有的速度革新客户支持模式——它已经成功解决了…

需求导向的K8S网络原理分析:Kube-proxy、Flannel、Calico的地位和作用

最近发现自己似乎从来没学明白过Kubernetes网络通信方案&#xff0c;特开一贴复习总结一下。 在k8s中&#xff0c;每个 Pod 都拥有一个独立的 IP 地址&#xff0c;而且假定所有 Pod 都在一个可以直接连通的、扁平的网络空间中。所以不管它们是否允许在同一个 Node&#xff08;宿…

Vulnhub:Digitalword.local: FALL靶机渗透

将靶机按照图中连接方式打开&#xff0c;fall在virtualBox中打开 信息收集 扫描得ip arp-scan -l 扫描端口 nmap -A -T4 -sV -p- 扫描目录 gobuster dir -u http://192.168.117.160 -x php,txt,html -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt 一个一个…

4、网工软考—VLAN配置—hybird配置

1、实验环境搭建&#xff1a; 2、实验过程 SW1&#xff1a; 先创建vlan2和vlan3 [Huawei-Ethernet0/0/2]port link-type hybrid //hybird端口 [Huawei-Ethernet0/0/2]port hybrid pvid vlan 2 [Huawei-Ethernet0/0/2]port hybrid untagged vlan 10 //撕掉vlan10的标签 …

2025年数智化电商产业带发展研究报告260+份汇总解读|附PDF下载

原文链接&#xff1a;https://tecdat.cn/?p41286 在数字技术与实体经济深度融合的当下&#xff0c;数智化产业带正成为经济发展的关键引擎。 从云南鲜花产业带的直播热销到深圳3C数码的智能转型&#xff0c;数智化正重塑产业格局。2023年数字经济规模突破53.9万亿元&#xff…

【深度学习】【目标检测】【OnnxRuntime】【C++】YOLOV5模型部署

【深度学习】【目标检测】【OnnxRuntime】【C】YOLOV5模型部署 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】【目标检测】【OnnxRuntime】【C】YOLOV5模型部署前言Windows平台搭建依赖环境模型转换--pytorch转onnxONNXRuntime推…

线程同步——读写锁

Linux——线程同步 读写锁 目录 一、基本概念 1.1 读写锁的基本概念 1.2 读写锁的优点 1.3 读写锁的实现 1.4 代码实现 一、基本概念 线程同步中的读写锁&#xff08;Read-Write Lock&#xff09;&#xff0c;也常被称为共享-独占锁&#xff08;Shared-Exclusive Lock&a…

全面解析PRN文件:从原理到可视化的完整指南 【标签打印】

文章目录 一、PRN文件概述二、PRN文件结构深度解析2.1 文件头配置2.1 绘图指令详解2.3 文本处理方案2.4 条码/二维码实现2.5 RFID指令集 三、实战&#xff1a;PRN可视化工具开发3.1 基于Canvas的实现方案3.2 坐标转换关键算法 四、常见问题解决方案4.1 内容偏移问题4.2 中文乱码…

C++:函数(通识版)

一、函数的基础 1.什么是函数&#xff1f;&#xff08;独立的功能单位&#xff09; 函数是C中封装代码逻辑的基本单元&#xff0c;用于执行特定任务。 作用&#xff1a;代码复用、模块化、提高可读性。 2、函数的基本结构 返回类型 函数名(参数列表) {// 函数体return 返回值…

sql注入语句学习

说明 注入漏洞作为登顶过web十大漏洞多次的漏洞&#xff0c;危害性不言而喻&#xff0c;其中sql注入就是注入漏洞常用的手段。其形成的原因是由于web在接收传参数据时&#xff0c;对数据的过滤不够严格&#xff0c;将其带入到数据库查询中&#xff0c;导致用户可以通过传参一些…

云钥科技多通道工业相机解决方案设计

项目应用场景分析与需求挑战 1. 应用场景 ‌目标领域‌&#xff1a;工业自动化检测&#xff08;如精密零件尺寸测量、表面缺陷检测&#xff09;、3D立体视觉&#xff08;如物体建模、位姿识别&#xff09;、动态运动追踪&#xff08;如高速生产线监控&#xff09;等。 ‌核心…

puppeteer+express服务端导出页面为pdf

以下是开发步骤&#xff1a; 1、创建目录 puppeteer_demo 目录&#xff0c;打开目录 初始化项目&#xff08;命令为&#xff1a;npm init -y&#xff09; 页面如&#xff1a; 初始化后&#xff0c;项目目录会出现 package.json 文件 2、安装 puppeteer &#xff0c;使用命令&a…

西域平台商品详情接口设计与实现‌

接口描述&#xff1a; 该接口用于获取西域平台中指定商品的详细信息&#xff0c;包括商品名称、价格、库存、描述、图片等。 点击获取key和secret 接口地址&#xff1a; GET /api/product/detail 请求参数&#xff1a; 参数名 类型 是否必填 描述 productId st…

项目-苍穹外卖(十五) Apache ECharts+数据统计

一、介绍 二、营业额统计 需求分析和设计&#xff1a; Controller: Service: /*** 营业额统计* param begindate* param enddate* return* */Overridepublic TurnoverReportVO turnoverStatistics(LocalDate begindate, LocalDate enddate) {//创建时间集合List<LocalDate&…

体育比分网站开发避坑指南:如何选择靠谱的数据服务商?(10年行业经验总结,避免踩坑!)

作为一家专业的体育比分数据服务商&#xff0c;我们接触过大量客户&#xff0c;发现很多人在开发体育比分网站或接入数据API时&#xff0c;由于选择不靠谱的服务商&#xff0c;导致项目延期、数据延迟、售后无响应、隐性收费等问题&#xff0c;最终影响运营效果&#xff0c;甚至…

离心萃取机在毕赤酵母萃取中的应用

在生物医药领域&#xff0c;毕赤酵母因其高效表达重组蛋白的能力&#xff0c;成为基因工程的“明星宿主”。然而&#xff0c;如何从复杂的发酵体系中高效提取目标产物&#xff0c;一直是行业痛点。离心萃取机的出现&#xff0c;凭借其高速分离、精准提纯的特性&#xff0c;正在…

CNN和LSTM的计算复杂度分析

前言&#xff1a;今天做边缘计算的时候&#xff0c;在评估模型性能的时候发现NPU计算的大部分时间都花在了LSTM上&#xff0c;使用的是Bi-LSTM&#xff08;耗时占比98%&#xff09;&#xff0c;CNN耗时很短&#xff0c;不禁会思考为什么LSTM会花费这么久时间。 首先声明一下实…

StarRocks 中 CURRENT_TIMESTAMP 和 current_time 分区过滤问题

背景 本文基于Starrocks 3.3.5 最近在进行Starrocks 跑数据的时候&#xff0c;发现了一个SQL 扫描了所有分区的数据&#xff0c;简化后的SQL如下&#xff1a; select date_created from tableA where date_createddate_format(current_time(), %Y-%m-%d %H:%i:%S) limit 20其…

从物理学到机器学习:用技术手段量化分析职场被动攻击行为

从物理学到机器学习:用技术手段量化分析职场被动攻击行为 1. 从物理系统视角看团队协作 1.1 团队系统的能量模型 在热力学系统中,系统的总能量由动能和势能组成。类比到团队协作中,我们可以建立如下模型: class TeamEnergy:def __init__(self, members):self.kinetic = …