分支与循环(上)【五一快乐,朋友们】

前言:

  我发现我似乎已经很久没写博客了(内心自我批评一下),我学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关系操作符 

  C 语⾔⽤于⽐较的表达式,称为 “关系表达式”(relational expression),⾥⾯使⽤的运算符就称
为“关系运算符”(relational operator),主要有一下六个:
  ( 1 ).大于操作符--”>“ :和数学中一样用于比较两个数的关系。
  ( 2 ).小于操作符--”<“  :   和数学中一样用于比较两个数的关系。
  ( 3 ).大于等于操作符--”>=" : 和数学有点差别但不多,也是比较两个数的关系
  ( 4 ).小于等于操作符--”<=“ : 和数学有点差别但不多,也是比较两个数的关系
  ( 5 ).等于操作符--"==": 记住双等于才是取等操作符,而单等于是赋值操作符
  ( 6 ).不等于操作符--"!=":与数学有点差别,!是逻辑取反的意思
  以上便是关系操作符,它在用于逻辑运算的时候有奇效,可以类比于数学的运算,但需要记住一点的是,关系操作符是不能够连用的,就比如如果想输入一个数既大于18又小于20,不可以写成18 < a < 20,这个在数学中是可行的,在编译器中是识别不出来的,想要表达这个关系的时候要用到”&&“操作符,至于它的使用不要着急,后文我写了,这些便就是关系操作符了,其实也没有啥难得,知道怎么用就可以了。
2.2条件操作符
   条件操作符也叫三⽬操作符,需要接受三个操作数的,形式如下:
     exp1 ? exp2 : exp3(老实说我也不怎么用,可能是我太菜了)
  条件操作符的计算逻辑是:如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果
exp1 为假, exp3 计算,计算的结果是整个表达式的结果。光写理论知识没有例题是不可的,上例题
  例5.使用条件操作符来寻找两个数的最大值

 

  这个便是代码的呈现效果,其实这个也可以用if语句来表达,读者有兴趣可以自己书写看看,以上便是条件操作符的使用(我自认为这个并不算太常用),逻辑操作符来喽。

2.3逻辑操作符

  上文中我们曾提及到&&,这个便是逻辑操作符的一种,下面我将对逻辑操作符进行详细的描述 :

! :逻辑取反运算符(改变单个表达式的真假)。
&& :逻辑与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。
|| :逻辑或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。
下面我将对每个进行详细的描述
2.3.1逻辑取反运算符

  通过图片我们可以了解到!的作用是将一个对的事变成错的,将一个错的变成正确的,举个简单的例子

  例6.逻辑取反运算符的使用

   

    正常来说,flag是1应该要输出hehe的,由于!的作用,让这个变成了0(也就是假),所以输出的是haha,从这里便可以看出!的作用了,可以把他之后的结果反着看
  
  2.3.2逻辑与运算符
  

  它的作用在上面的图片完美的呈现了,可以把&&看作成也的意思,只有两个条件均成立的时候才能看成一个真的,毕竟也这个字便是写出了对于它左右的数是捆绑的,为了便于读者理解,我继续写一个例题来解释它的使用.

  例7.如果我们说⽉份是3⽉到5⽉,是春天,那使⽤代码怎么体现呢?

 

 

   以上便是逻辑与运算符的运用,其实这个也不难,把它相成3 <= i <= 5就行,因为c语言无法实现这种表达式才有了与运算符,下面将要介绍下一个运算符

  

  2.3.3逻辑或操作符   

  

  上述图片代表了逻辑或的使用条件,它和逻辑与最大的区别是,它只要两个条件之中的一个成立这边会成立,在提一嘴,逻辑或和逻辑与操作符都是双目操作符,都需要两个操作数,对于逻辑或具体的应用,我在写一个例题来帮助理解

 例8.我们说⼀年中⽉份是12⽉或者1⽉或者2⽉是冬天,那么我们怎么使⽤代码体现呢?

  这个代码便就是这么书写的,具体内容我也不重复说了,那么现在,对于一些操作符的学习就讲到这里,为了能更好的运用他们,我从这给出了一个大的例题(相信不少读者都写过),方便帮助理解

  例8.闰年的判断

 

    

  对于闰年的判断不止这些,一些想要更加了解的读者可以从网上搜索了解,这个题完美的把讲的逻逻辑操作符都用上了,具体的用法我也解释说明了,如果有不会的或者我书写有错误的可以评论一下,我一定改正

  行了,不知不觉也写了这么多了,本来想写switch语句的,看来也差不多了,下一篇在写,其实这篇文章我在五一当天就起草了,奈何我一直在玩,忘记这事了,我真的很痛心,于是熬夜肝完了这一篇文章,行了,不多废话了,下篇文章不见不散 

 

 

 

 

   

  

  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值