分支语句(If)

本文详细介绍了C语言中if语句的基本结构、使用方法,包括if...else语句、嵌套if结构以及简洁写法如省略大括号的情况。同时提到了else语句的对立关系和elseif语句的引入,以提高代码可读性。

0.引言

在c语言的庞大体系中,if语句尤为重要。我写下这个博客的目的呢,就是让大家学会if语句的最基本的用法。

1.if语句

上图是if语句的基本结构,()里面放的是表达式{} 里面放的是语句。当表达式为真,则执行语句,反之不执行。注意:在c语言中0为假,非0为真。

那么接下来我们看一段代码:

例1.1

这里我们明显可以看到第一个if语句中表达式为0即为假,所以不执行。

第二个if语句中表达式为1,属于非0,为真,所以执行。

所以我们将会看到输出为”Flowey“,如下图所示:

当然,我们c语言的表达式可不是只有数字那么简单,它一般都伴随着操作符一起出现。

例如:"a>b","1<2","a==b+3","a!=6+b"

那么接下来我们用”a>b“来试一下吧!

例1.2

在这一串代码中,a=3,b=5,很明显表达式“a>b”为假,所以语句不执行。

如下图:

2.else语句

我们刚刚介绍了if语句,但是在刚刚的例子中,一个if语句只可以判断一个表达式。

在例1.2中,我们的if语句只判断了表达式”a>b“,但是我想让它判断除”a>b“之外的情况该怎么办呢?

那么我们接下来介绍if的兄弟:else

else通常与if一起构成if....else语句.

上图为if....else的基本结构.可以看到else的后面是没有表达式的,这是因为它的表达式就是if后面的表达式的对立,例如但if后面的语句是“a>b”时,else的表达式就是“a<=b”。

让我们再来改进一下例1.2

例2.1

可以看到,我在后面加了一个else。让我们来分析一下,首先a=3,b=5,然后进入if语句,表达式(a>b)不满足,那么就进入else语句,表达式(a<=b)满足,所以执行else语句中的语句。

结果如图

在我们熟悉之后呢,就会发现,只要if语句中的表达式不成立,else语句的表达式就必定成立,所以以后我们在读代码时,只要发现if的表达式为假,那么就可以直接else中的语句了。

3.if语句的嵌套

我们之前了解到了if...else语句的基本结构,那有人可能会问:那么我们可以在if语句中再放一个if语句吗?当然是可以的,因为if语句它也是语句的一种,也满足其基本结构。

例如我们看一下这个代码

例3.1

我们先来分析一下这个代码,首先由于scanf函数,我们得输入一个数字,假如我输入了15,然后将15赋值给a,那么a就等于15。然后我们判断if语句中的表达式“a>0”,显然表达式成立,然后我们看到第二个if语句的表达式"a%2==0",明显15除以2的余数是1,不等于0,所以表达式为假,执行其else语句中的语句,即打印“奇数”。

如图

这就是if语句的嵌套。

细心的朋友可能会看到,在例3.1中,第二个if语句没有按基本结构来写,即所执行的语句没有被大括号{}括起来,这是因为当if语句所执行的语句只有一条的话,就可以把{}省略。

例如下图

可以省略成

我们知道这个之后,我们来创造一个新的语句吧!

首先我们看下面的代码

例3.2

我们可以看到,在第一个else语句中,只有一个if...else语句,所以我们把它的大括号{}去掉。

如图

例3.2.1

诶,我们发现了一个新的语句——else if语句。当我们只使用if...else语句时,我们发现如果我们想判断两个以上的表达式时,如例3.2,所写出的代码十分的繁琐,读起来不好理解。else if就很好的解决了这个问题。如例3.2.1,我们可以很明显的看到,所判断的表达式有三个,即“num==0”,"num>0","num<0(此表达式为else语句中省略的表达式)"。当把5赋值给“num”时,我们可以很快的看出,“num>0”成立,即执行else if语句中的表达式。

如图

以上就是if语句的基本用法啦,我们再来看一段代码来结束这一篇博客吧!

内容概要:本文围绕发光太阳聚光器开展蒙特卡洛光线追踪研究,重点利用Matlab编程实现光线在聚光系统中的传播路径模拟。通过蒙特卡洛方法对大量随机光线进行统计追踪,精确分析光能在接收面上的分布特性、聚焦效率及系统整体光学性能,进而评估不同几何结构与材料参数对聚光效果的影响,为高效太阳能收集系统的设计与优化提供理论依据和技术支持。研究不仅涵盖核心算法实现,还结合多个跨领域科研案例(如电力系统、路径规划、信号处理、机器学习等),展示了Matlab/Simulink在科研建模与仿真中的广泛应用价值,突出了算法仿真与多学科交叉融合的重要性。; 适合人群:具备一定Matlab编程基础,从事光学工程、新能源技术、仿真建模及相关领域研究的科研人员,尤其适合研究生及青年研究人员。; 使用场景及目标:①掌握蒙特卡洛方法在光学系统仿真中的原理与应用;②学习使用Matlab实现光线发射、反射、折射及能量统计的完整追踪流程;③通过实际代码实践优化聚光器结构设计;④借鉴文中多领域仿真案例,拓展科研视野与技术迁移能力; 阅读建议:此资源以代码实现为核心,建议读者结合Matlab环境动手运行与调试程序,重点关注光线追踪的物理建模与数值计算细节,并参照其他仿真范例举一反三,全面提升科研建模与算法实现能力。
内容概要:本文复现并深入探讨了一种基于价格弹性矩阵的居民峰谷分时电价激励策略,属于电力系统需求响应领域的关键技术研究。研究通过构建价格弹性矩阵精确刻画居民用户对不同时段电价变化的用电行为响应特性,结合优化算法设计科学合理的峰谷分时电价方案,有效引导用户在高峰时段减少用电、低谷时段增加用电,实现削峰填谷,提升电网运行稳定性与能源利用效率。文中配套提供了完整的Matlab代码实现,涵盖数据处理、模型构建、优化求解及结果可视化等模块,具有较强的可复现性与工程应用价值,适用于需求侧管理政策仿真与学术研究。; 适合人群:面向具备一定电力系统基础知识、能源经济学或需求响应研究背景的科研人员,以及从事相关课题的硕士、博士研究生;熟悉Matlab编程且关注智能电网优化的技术人员亦可从中获益。; 使用场景及目标:①用于居民侧用电行为建模与电价敏感性分析;②支撑峰谷电价政策的设计、仿真评估与优化调整;③作为高校教学中需求响应机制的算法实现案例与科研入门实践项目。; 阅读建议:建议读者结合Matlab代码逐模块解析其实现逻辑,重点掌握价格弹性矩阵的构造方法、目标函数与约束条件的数学建模过程,以及优化求解器的调用方式,同时可尝试引入其他智能优化算法进行对比实验,以深化对电价激励机制设计原理的理解与创新能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值