C语言分支和循环语句

本文详细介绍了C语言中的分支语句,包括if语句的基础结构、如何处理多条语句,以及else的匹配规则。此外,还讲解了switch语句的使用,包括case、break和default的作用,强调了在编写switch语句时需要注意的事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言中分支语句有 if  和  swich语句

首先来了解一下if 语句;主要用于双分支,多分支语句中;其主要结构如下图

 

 如果表达式为真那么if语句就会往下走;在C语言中一切非0即为真;切记每个if else语句只能读写一组语句;如果想多组语句输入那么要在语句外面套上一个大括号;并且特别强调一下每一个else语句就近原则匹配if语句;让我们输一下代码具体走一下;

 当我们输入这个代码的时候,我想让当a=1的时候输出hehe,当不等于1的时候输出 haha 和 momo; 下面我把运行结果打出来看看当a等于1时能否输出hehe;

 可以明显的看到不光是hehe 被打印了并且momo也被打印了;从这我们可以得出上面的论证;if else 语句,只能读写一个语句

那么如果我们想要实现读取两条语句的时候那该怎么办呢?

别急,看我下面这个代码;我们可以清晰地看到,当a=1时只打印了hehe,并没有打印momo;

所以得出结论,当想用if else 语句控制多条语句时,我们可以用{}把多组语句包括起来,变成一个代码块,从而使if else 语句能够识别运行代码块里面所有的代码;

 

 再来讲一下else

每一个else都需要匹配一个if;并且匹配原则为就近原则;即只与最近的一个if语句匹配;

我们来看代码;

 

 当我代码写成这样时,很多人会以为这个代码会输出 haha;会觉得if语句判断a不等于1,所以走else语句;从而输出haha;

其实这里有一个盲区;每一个else语句只与最近的if语句匹配;所以第一个if语句没有else匹配;当a不等于1时就什么都没有输出;

写代码格式也非常重要;每一个对应的数据应当对应输入;

个人建议在写 if  else 语句时,在每一个 if else 下面加上一个{},这样使你的代码更加简洁明了,就不会存在else 不知道跟哪个if匹配的现象;

 其次再来说一下 switch语句;

switch语句也是分支语句,只要用于判断多分支情况;比如判断今天星期几,这个月是几月份,等等;如果这种多分支情况用  if else  来判断,那么代码太长太麻烦了,所以这时候就要用到我们的switch语句;

switch语句是和if语句一样能够嵌套使用的;

先让我们看一下switch语句结构;

 那么语句项又是什么呢;

 可以看到语句项就是case 整形常量表达式  加上一个语句;

再者switch语句中每个分支的出口 为  break;

看下面这个代码,大家觉得会输出什么;

当我们输入一个1 的时候可能有人会觉得会输出一个“星期一”,其实不对;switch语句中,如果每一个分支不设置出口,那么从输入的分支进去之后,只会一直往下运行,直至结束返回0;

所以我们这时候就需要在,你需要返回结束的分支创建一个出口;即 break 语句;当代码运行到break 时自动跳出语句;我们可以看下代码;

 由此可见,在switch语句中,case代表入口,break 则代表出口;

要注意的是,在switch语句中必须是整形表达式,不可以用浮点型;

关键来了,字符也是可以的,因为字符在因为字符在底层存储当中是以阿斯克码值的形式存储的。笔记加一;

default 的使用

如果表达式的值与所有的case的标签值都不匹配,我们可以使用default来提示用户,default可以写在任何位置,并且一个switch语句只能有一个default子句。

什么意思呢,拿if else 比较,就相当于switch语句中的else;并且default语句后面也是可以写break的;

大家肯定都是天才不是笨蛋,我就不细说了;直接上代码;

 如图所例,当我们day的值大于7时,没有case语句让我们进入,那么这时候就会进入default;类似于if else 中的作用;上图输出结果就为“输入错误”;

下面我写了一个代码,大家可以试着理解一下代码的意思,跟结果;

 答案是m = 5,n =3.你理解了嘛。

好了这就是我与大家分享的分支结构,如果写的不好希望大家提出建议,有错误也请大家指出,我希望可以和大家一起学习一起分享一起进步。

分数阶傅里叶变换(Fractional Fourier Transform, FRFT)是对传统傅里叶变换的拓展,它通过非整数阶的变换方式,能够更有效地处理非线性信号以及涉及时频局部化的问题。在信号处理领域,FRFT尤其适用于分析非平稳信号,例如在雷达、声纳通信系统中,对线性调频(Linear Frequency Modulation, LFM)信号的分析具有显著优势。LFM信号是一种频率随时间线性变化的信号,因其具有宽频带良好的时频分辨率,被广泛应用于雷达通信系统。FRFT能够更精准地捕捉LFM信号的时间频率信息,相比普通傅里叶变换,其性能更为出色。 MATLAB是一种强大的数值计算科学计算工具,拥有丰富的函数库用户友好的界面。在MATLAB中实现FRFT,通常需要编写自定义函数或利用信号处理工具箱中的相关函数。例如,一个名为“frft”的文件可能是用于执行分数阶傅里叶变换的MATLAB脚本或函数,并展示其在信号处理中的应用。FRFT的正确性验证通常通过对比变换前后信号的特性来完成,比如评估信号的重构质量、信噪比等。具体而言,可以通过计算原始信号与经过FRFT处理后的信号之间的相似度,或者对比LFM信号的关键参数(如初始频率、扫频率持续时间)是否在变换后得到准确恢复。 在MATLAB代码实现中,通常包含以下步骤:首先,生成LFM信号模型,设定其初始频率、扫频率、持续时间采样率等参数;其次,利用自定义的frft函数对LFM信号进行分数阶傅里叶变换;接着,使用MATLAB的可视化工具(如plot或imagesc)展示原始信号的时域频域表示,以及FRFT后的结果,以便直观对比;最后,通过计算均方误差、峰值信噪比等指标来评估FRFT的性能。深入理解FRFT的数学原理并结合MATLAB编程技巧,可以实现对LFM信号的有效分析处理。这个代码示例不仅展示了理论知识在
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值