前言:
我发现我似乎已经很久没写博客了(内心自我批评一下),我学c语言也有一段时间了,感觉我不总结一下我会忘掉自己所学到的知识,下面不多叨叨,直接正入正题。
正题:
我在我之前写的《初始c语言(下)》中曾经提及c语言需要学到许多的语句,现在我便要讲控制语句,控制语句包括分支语句,循环控制语句和转向语句。我先从分支语句开始讲
一 .分支语句
1.if 语句
1.1 if
在英文中,if是如果的意思,它代表着判断一个事物的对和错,在c语言中也同样如此,为此有个点需要特别的说明,在c语言中,0表示否,非0(一般会说成1)表示真。下面我先上一个代码来说一说if的作用
可以从上式可以看出if的作用,在括号里是1的时候,打印出了hehe,但是下面那个if括号里面是0,并没有打出haha,从这便可以看出来if的作用,是来判断对错,对的便会执行语句,错的话是不执行语句的,下面我来介绍if的正确用法
对于if的用法我画了个图来表示,我感觉画图比文字更有感觉
我写的字有点小丑,见谅,但是if便是这个用法,我特地来强调一下,大括号虽然对于单语句没有必要,但是加上是最好的,因为有的时候可能真的会忘记,养成这个习惯最好,对以后写一些复杂的语句有很大的帮助.在c语言中养成一个良好的习惯是很好的,有时候一些很难的问题会迎刃而解。当然,这里我也要展示出if语句的执行流程,可以与上面一起记忆,以下便是我画的(画的说还在的我都觉得抽象),我举个if的小例子来验证下if的使用
例1.输入一个数判断其是否为奇数
这便是奇数是如何判断的代码呈现,我一一解释一下,刚开始先初始化一个数,然后通过库函数scanf(我似乎没写它的用法,写完这篇补上)来输入一个数,之后需要直到奇数的判断条件是一个数除以2总能余上一个1,然后我们可以用%取余符号来完成,通过if函数判断这个数是不是模2余数为1,若是那么便会输出(这里拿奇数来进行举例子),不是则不会输出,这样便完成了这个代码,相信看到这里,很多人会觉得这个代码并不会很完美,因为如果是偶数的话并会输出,这样并不完美,肯定会有人说再用if语句写一个(只是说那些还没了解if语句的小白,如果有大佬不要嘲笑我),行是行,但是这样总归还是太繁琐了,这时候便可以进入下一小节了,if的好兄弟else来了!
1.2 else
在英文中,else是还,那么的意思,在c语言中,它可以和if一起使用,可以认为是如果...那么...的意思,它可以表示除了if语句之外的,我用图片的形式来写它的运用
可能你们看着这图很熟悉,我直接大胆承认,这个就是我写if语句时候写的,我直接加else了,这个就是else的用法,,我对例1进行优化来展示它如何进行操作
例2.例题1的优化
可以很明显的看出if else的绝妙配合,这个才可以称为完整的判断奇数代码,其实可以把else相成在换一个if(),对于两个条件判断真假的,这时候肯定有人想如果不止两个条件该怎么办,不要急,等会就讲。我们先来说说if和else的一个特性,话不多说上代码
例3.几岁谈恋爱问题的代码(这是个有点小错的代码)
通过以上代码,我们可以知道无论输入哪个数字,都会有可以谈恋爱了这个内容,因为这里便要说if else的性质了,它俩仅仅控制离他们最近的语句(前提没大括号),所以“可以谈恋爱了”不归他们管,这个无论输入什么都会带着·,如果想要正常写出这个代码,在else后面加上大括号即可。
1.3if语句的嵌套
刚才说了,平常只有两个条件的时候,仅仅需要if else即可,现在如果多了第三个条件甚至更多的条件,这就必须要到if的嵌套了,对于if如何嵌套,我在用一个图来表示(特别强调,如果条件里面还有条件,这就会完成一个嵌套,正如标题而言)
可以通过上图来记住if是如何嵌套的(可能很多人觉着这图很熟悉,我就是把之前写的进行饿了加工,成功做到了对纸的循环利用), 光说这些理论知识不展示实际的到头来还是学的一场空,继续上例题
例3. 输⼊⼀个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出:非正数。
对于这个题的解析我已经在解释中说了,从这可以看出解析的重要性,对于解析的重要性我已经在一篇博客写到了,感兴趣的可以看看。上面便是函数的嵌套 ,总的来说就是if里面嵌套if语句,这样便是嵌套,仔细一想我上面的也不大准确,所有我举个else if()的例子
例4.输⼊⼀个⼈的年龄 ,如果年龄<18岁,打印"少年",如果年龄在18岁⾄44岁打印"⻘年“,如果年龄在45岁⾄59岁打印"中老年",如果年龄在60岁⾄89岁打印"老年",如果90岁及以上打印"老寿星"。
我就拿其中一种情况来举例子了,其他的读者可以自行尝试(不要照抄我的,要学会代码一定要自己多练多学多看,而不是一味的抄别人的代码)下面先不讲控制语句,讲两个小小的知识点。
2.一些操作符
2.1关系操作符
![](https://img-blog.csdnimg.cn/direct/5d79823986d244b8ba33bfcc31ffe059.png)
这个便是代码的呈现效果,其实这个也可以用if语句来表达,读者有兴趣可以自己书写看看,以上便是条件操作符的使用(我自认为这个并不算太常用),逻辑操作符来喽。
2.3逻辑操作符
上文中我们曾提及到&&,这个便是逻辑操作符的一种,下面我将对逻辑操作符进行详细的描述 :
![](https://img-blog.csdnimg.cn/direct/0bc7f86a84714300a0615f5b588a5492.png)
通过图片我们可以了解到!的作用是将一个对的事变成错的,将一个错的变成正确的,举个简单的例子
例6.逻辑取反运算符的使用
![](https://img-blog.csdnimg.cn/direct/e96eb92493d1426a857174254f01c770.png)
它的作用在上面的图片完美的呈现了,可以把&&看作成也的意思,只有两个条件均成立的时候才能看成一个真的,毕竟也这个字便是写出了对于它左右的数是捆绑的,为了便于读者理解,我继续写一个例题来解释它的使用.
例7.如果我们说⽉份是3⽉到5⽉,是春天,那使⽤代码怎么体现呢?
以上便是逻辑与运算符的运用,其实这个也不难,把它相成3 <= i <= 5就行,因为c语言无法实现这种表达式才有了与运算符,下面将要介绍下一个运算符
2.3.3逻辑或操作符
上述图片代表了逻辑或的使用条件,它和逻辑与最大的区别是,它只要两个条件之中的一个成立这边会成立,在提一嘴,逻辑或和逻辑与操作符都是双目操作符,都需要两个操作数,对于逻辑或具体的应用,我在写一个例题来帮助理解
例8.我们说⼀年中⽉份是12⽉或者1⽉或者2⽉是冬天,那么我们怎么使⽤代码体现呢?
这个代码便就是这么书写的,具体内容我也不重复说了,那么现在,对于一些操作符的学习就讲到这里,为了能更好的运用他们,我从这给出了一个大的例题(相信不少读者都写过),方便帮助理解
例8.闰年的判断
对于闰年的判断不止这些,一些想要更加了解的读者可以从网上搜索了解,这个题完美的把讲的逻逻辑操作符都用上了,具体的用法我也解释说明了,如果有不会的或者我书写有错误的可以评论一下,我一定改正
行了,不知不觉也写了这么多了,本来想写switch语句的,看来也差不多了,下一篇在写,其实这篇文章我在五一当天就起草了,奈何我一直在玩,忘记这事了,我真的很痛心,于是熬夜肝完了这一篇文章,行了,不多废话了,下篇文章不见不散