关于C语言分支循环语句详解(在学习时的收获与感悟)

在学习分支循环语句之前,首先得了解C语言,C语言是一门结构化的程序设计语言,具体结构分为以下三类:选择结构,顺序结构,循环结构。

而其中最简单的就是顺序结构,那么什么是顺序结构呢?举个例子,在你做一件事情的时候,从头做到尾。

接下来就介绍选择结构,同样举个简单的例子,从北京到广州,你可以坐飞机,坐高铁,同样也可以自己开车,这是你在去往广州的选择,这就是选择结构。

最后介绍循环,举个简单的例子就是你每天都吃饭,这就是一件你在循环做的事情。

分支语句包括两种:switch和if

循环语句包括三种:while和for和do......while;

分支语句 

if语句 

if语句的语法形式如下所示:

表达式如果为真,那么就执行语句;否则,就不执行(注:C语言中用0表示假,用非表示真)

举个例子:输入一个整数,判断这个整数是否为奇数。

 在上面这个例子中,我们输入了一个5,最后发现结果是一个奇数。根据我们以前在数学里学过的知识知道,一个数如果不是奇数,那么就是一个偶数,如果我们想实现这个代码,该怎么办呢?

这个用到了一个if.....else语句,它的语法形式如下:

这个可以理解为:表达式为正,执行语句1;为假,执行语句2。(注:一般来说,else后面是不用加表达式的。因为一个数不是奇数就是偶数,那么判断一个数的时候,这个数除以2不等于0了,那么这个数不是偶数了,那你还要去判断那个书那个书是否为奇数吗?答案肯定的是不需要了)

此外,我在写代码的时候,不管是if还是else,我都用了一个{  },这个其实就是因为if和else都是默认只识别一个语句(建议带上一个{  })。

嵌套if,在if...else语句中,可以用else与另外一个if语句连用,构成多重判断。

例如:输入一个整数,判断其正负,还是0。代码如下:

这就是嵌套,在if....else中继续使用其本身(在判断哪一部分使用在外部,哪一部分使用在里头,我个人认为是这样的:首先比较出哪两部分是对立的,例如:正数和负数是两个对立,那么这两个肯定是要放在一个if...else中的。接下来再看剩下的是否能组成相对立的部分:这里头可能需要自己总结,剩下的是非0和0,这个非0是要自己总结的,这个就是判断的过程)

上面代码:首先输入一个数判断是否为0,如果是则执行对应的语句;如果不是0,那么接下来,再判断是否小于0,如果是则执行对应的语句,反之就执行else对应的语句。

接下来,讲一个关于悬空else的问题:如果有多个if和else,else总是和最接近的if匹配。

举个例子:

从程序运行的结果来看,为什么上面什么都没有打印呢?

其实else是与它最接近的那个if相匹配的,那么这个代码就是最上面的那个if包括下面的if....else语句

就是这个样子,如果加个{  },会更加明显看出。关于为什么什么都没有打印呢,就是因为a等于0,不等于1,所以更本就不执行if语句。

以上就是if...else的讲解,接下来,就开始介绍switch语句

switch语句

switch语句是一种特殊形式的if...else结构,用于判断条件有多个结果的情况。

根据表达式不同的值执行不同的语句,如果找不到对应的值,就执行default分支。

注:1.switch后面的表达式必须是整形表达式

        2.case后面的值,必须是整型常量表达式

        3.每一个case语句后都应该跟一个break,这样才能够跳出那个switch语句,

           如果没有加上,那就会一直执行到这个switch语句结束。

         4.default语句与case语句之间没有固定的顺序关系,但是通常是把default语句放在最后

以上就介绍了分支语句的两种。

接下来,开始介绍循环语句

循环语句

1.while循环

如果有多条语句,那么也是应该加上{  }

while循环首先是来判断表达式的真假。如果为真,就执行下面的语句,执行完,上来继续判断表达式的真假,如果为真,就执行下面的语句,一直这样循环往复直到表达式为假或者死循环;如果为假,那么就直接跳出该循环。

练习:在屏幕上打印1~10

2.for循环

for循环是三种循环里头用的最多的一种

如果有多条语句,那么也是应该加上{  }

表达式1是循环变量初始化

表达式2是循环条件判断

表达式3是循环变量的调整

首先执行表达式1,接下来执行表达式2,若表达式2的结果不等于0,那么就开始执行语句,执行完语句,就执行表达式3,调整循环变量,接着就继续执行表达式2,判断循环的条件,若表达式2的结果不等于0,那么就继续执行语句,执行完语句,就执行表达式3,调整循环变量,一直这样执行下去,直到表达式2的等于0,才停止,或者死循环;如果表达式2的结果为0,那么就直接跳出该循环。

练习:在屏幕上打印1~10的值

3.do...while循环

如果有多条语句,那么也是应该加上{  }

do...while循环首先是执行语句,执行完之后,再判断表达式的真假,如果为真,就继续执行语句,执行完后,又判断表达式的真假,一直这样重复,直到表达式的结果为假或者死循环;如果表达式2的结果为0,那么就直接跳出该循环。

练习:在屏幕上打印1~10的值

do...while循环与for循环还有while循环最大的区别就是其是先执行再判断,后者两个是先判断在执行。所以do...while循环不管表达式的真假,其都会执行一次。

break和continue

这两个都是在循环是用于终止循环

break是永久性的终止循环,直接跳出循环

continue是跳过本层循环后面的代码

break举例:

当i等于5时,执行if语句,break直接跳出for循环,后面的数字也不再打印

continue举例:

 

这里我们发现这两个结果最终不同,是因为for循环跳过continue后面的代码,回到调整部分,那么这个i就不再等于 5,可以继续打印后面的值了;但是这个while循环的continue跳过后面的代码,继续判断,i还是等于5,那么就死循环了。综上所述:只要调整部分在continue之前,那么就不会陷入死循环。

以上就是我个人在学习C语言时的感悟

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我要学编程(ಥ_ಥ)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值