分支与循环

一.分支

1.1if语句语法形式

表达式成立为真,语句执行;表达式不成立为假,则语句不执行。(其中0为假,非0为真)

91644af07e8a4673990e62c8a7b036e7.png

 if语句的书写形式0b55f161bb3249669cae490285c7c66e.png

 

当if语句为假时,else语句可以执行if语句的对立面。

397483676b40470398dddc008b54b543.png

 当求出的结果需要框定范围时,可以采用嵌套式if语句,即在else情况中再进行细分。

若句子中存在多个if和else时,else总是和最近的if进行匹配

bed8100884544065b8e28afe0feb038f.png

 如图执行代码后,输出结果是:啥都不输出

为什么呢?

当a=0时第一条if语句不满足,此时不会执行第二条if语句了,会直接走到return上,其中的else语句是和第二个if语句相联系,也就是说第一条if语句是没有else情况输出的。

若希望将else语句与第一句if相对应可以加上{    }

使逻辑更清晰。

1.2关系操作符

<小于运算符        <=小于等于运算符

>大于运算符        >=大于等于运算符

==相等运算符     !=不相等运算符

注意:

相等运算符==   与赋值运算符=是不一样的运算符,为了防止错误可以将变量放在右边。

多个关系运算符不宜连用,例如:

i<j<k不是合法表达,应当写成i<j&&j<k

&&表示并且。

相关逻辑操作符还有:

!   逻辑取反运算符

&&表示并且(两侧表达式为真则为真,否则为假)

‖       表示或者(两侧至少有一个表达式为真,则为真,否则为假)

1.3短路

C语言逻辑运算符的一个特点,它总是先对左边进行求值,再对右边求值。如果左边运算符满足逻辑运算条件就不再对右边进行求值,这种情况成为短路。

例如:

if(month== 12 ‖ month== 1 ‖ month==2)如果month等于1则不用判断month是否等于12或者2,整个表达式结果也是1

if(month>=3&&month<5)

如果month>=3结果为0时,则无需判断month<=5,整个结果都为0。

2.1Switch语句

switch语句是if  else语句的特殊形式,可以把多重的if  else语句改成更易用的形式

20cef79f56ff45d5a772b0a924b123bd.png

 switch()括号中为整型表达式

根据表达式中不同的值执行不同的case分支,如果找不到相应的值,就执行default分支。

其中case后的值必须是整型常量表达式,case后边需要加空格,在每一句case后面需要加上break才能跳出语句。


二.循环

1.1while循环

while与if语句不同点在于,while语句可以实现循环效果而if不行。while语句的执行流程图

57a51d4da69f45c987618f794a8d4153.png

 首先上来执行判断表达式,表达值为0则循环结束,表达值不为0则执行循环语句。

2.1for循环

for循环语法如下

for(表达式1;表达式2;表达式3)

表达式1 用于循环变量的初始化

表达式2 用于循环结束条件的判断

表达式3 用于循环变量调整

e5dfe3a43ac24a398bd9650f5af577d9.png

 首先执行表达式1,接着执行表达式2判断,若判断为0则结束语句,若不为0则进入循环语句,然后进行调整后重新回到表达式2判断进行循环。整个过程中表达式1只执行1次,剩下是表达式2、3的循环。

2.2for循环与while循环对比

745121dc5a8f48aa8e9ebecdd8b2d719.png

 相较于while循环,for循环的三个部分更加集中。便于维护。

3.1goto语句

goto语句可以实现在同一个函数内跳转到设置好的标号处。可以快速跳出循环语句。

但如果使用不当,会导致在函数内部随意乱跳转,打乱程序的执行流程。

4.1do while循环

5584a57e27c546389603205ed1106ae3.png

 在循环中至少会执行一次,首先执行语句,若语句等于0那么循环结束,如果语句非0则进入判断表达进行循环。

5.1break与continue

continue在循环中的作用是跳过本次循环中continue后边的代码,继续执行下一次循环判断。

break是用来终止循环的

 

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值