C语言—分支和循环(各类操作符、循环语句)

介绍:C语言是结构化的程序设计语言,这里的结构值得是顺序结构选择结构循环结构。C语言是能够实现这三种结构的,其实我们如果仔细分析,我们日常所见的事情都可以拆分为这三种结构或者这三种结构的组合。(建议有些基础的同学学习,进行知识框架的构建)

1.if 语句

1.1 if

if语句的语法形式如下:

表达式成立(为真),则执行,表达式不成立(为假),则语句不执行。

在C语言中,0为假,非0为真,也就是表达式的结果如果是0,则语句不执行,表达式的结果如果不是0,则语句执行。

1.2 else

如果一个数不是奇数,那就是偶数了,如果任意一个整数,我们要清楚的判断是奇数还是偶数怎么表示呢?这里就需要用 if ...else...语句了,语法形式如下:

当只有一行命令时,可以不加{}。但是有多行执行指令时,要加{}。

本博客只是对C语言进行总结概括和细节补充,如果有疑问,可以在第一篇博客的开头的菜鸟教程中进行学习。

1.3 嵌套 if

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

比如:要求输入一个整数,判断输入的整数是0,还是正数或者负数。

上述被标记的部分,就是嵌套的 if...else...语句。

1.4 悬空else问题

如果有多个if 和else,可以记住这样一条规则,else 总是跟最接近的if匹配。

2.关系操作符

C语言用于比较的表达式,称为操作“关系表达式”(relational expression),里面使用的运算符就称为“关系运算符”,主要有下面6个。

• > 大于运算符

• <小于运算符

• >=大于等于运算符

• <=小于等于运算符

• ==相等运算符

• !=不等运算符

关系表达式通常返回 0 或 1,表示真假。

C语言中,0表示假,所有非零值表示真。比如,20>12 返回1,12>20返回0。

关系表达式常用于 if 或 while 结构。

注:不要多个运算符连用。比如:a<b<c这样的写法。但是可以写成a<b && b<c

3.条件操作符

条件操作符也叫三目操作符,需要接受三个操作数,形式如下:

example1 ? example2 : example3

条件操作符的计算逻辑是:如果example1为真,则结果为example2的计算结果;如果example1为假,则结果为example3的计算结果。

4.逻辑操作符:&&,||,!

!:数学中的“非”。真为假,假为真。

||:数学中的“或”。有真则真,无真则假。

&&:数学中的“与”。同真则真,有假则假。

5.短路

C语言逻辑运算符还有一个特点,它总是先对左侧的表达式求值,再对右侧的表达式求值,这个顺序是保证的。如果左边的表达式满足逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。

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

表达式中&&的左操作数是 month>=3,右操作数month<=5,当左操作month>3的结果是0的时候,即使不判断month<=5,整个表达式的结果是0。因为它只能是假了。

对于||原理类似,如果左边的表达式是1,那么就不会计算右边的表达式,因为它已经是1了。

6.switch语句

除了 if 语句外,C语言还提供了swith语句来实现分支结构。

switch 语句是一种特殊形式的if...else 结构,用于判断条件有多个结果的结果。它把多重的else if g改成更易用、可读性更好的形式。

上面代码中,根据表达式expression不同的值,执行相应的case分支。如果找不到对应的值,就执行default分支(可有可无,没有顺序要求)。

注:switch后的expression必须是整型表达式

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

 7.while循环

表达式为真就执行,表达式为假就直接全部退出。

8.for 循环

表达式1:完成初始化

表达式2:完成判断

表达式3:调整

9. do while 循环

while 和 for 这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环;而do while 循环则是先直接进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真,就会进行下一次,表达式为假,则不再继续循环。(至少循环一次)

10. break 和 continue 语句

在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,这是非常常见的现象。C语言中提供了break和continue两个关键字,就是应用到循环中的。

break 的作用是用于永久的终止循环,只要break被执行,直接就会跳出循环,继续往后执行。

continue的作用是跳过本次循环中continue后边的代码,在for循环和while循环中有所差异的。

10.1 while循环中的break和continue

10.1.1  举例

相比各位能很轻松的看懂上面代码。

但若换成continue。

代码出现了小变动。但是可以发现,没有打印5。

11.循环的嵌套

前面学习了三种循环while,do while,for,这三种循环往往会嵌套在一起才能更好的解决问题,就是我们所说的:循环嵌套,这里我们就看一个例子。

11.1练习

找出100~200之间的素数,并打印在屏幕上。

注:素数又称质数,只能被1和本身整除的数字。

11.2题目解析:

1.要从100~200之间找出素数,首先得有100~200之间的数,这里可以使用循环解决。

2.假设要判断i是否为素数,需要拿2~i-1之间的数字去试除i,需要产生2~i-1之间的数字,也可以使用循环解决。

3.如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。

11.3参考代码:

12.goto语句

C语言提供了一种非常特别的语句,就是goto语句和跳转标号,goto语句可以实现在同一个函数内跳转到设置好的标号处。

注:若出现中文乱码,可以试试在第一行加#pragma execution_character_set("gbk")或者#pragma execution_character_set("UTF-8")

goto 语句如果使用的不当,就会导致在函数内部随意乱跳,打乱程序的执行流程,所以我们的建议是能不用尽量去不使用,但是goto语句也不是一无是处,在多层循环的代码中,如果想要快速跳出使用goto就非常的方便了。

作者自述:本文主要针对C语言的循环知识,对此作一个简单介绍。内容中包含了很多链接以及记忆性总结内容,有查阅需求的同学可以收藏一下哦,便于查找。本文制作不易,求求动动你们发财的小手点个赞和关注,这是对我创造最大的动力。后续我也会跟进内容,尽量一周至少一次,保证内容的质量。如果有想知道的内容或者有建议的地方,欢迎后台私信或者在本文留言哦。感谢各位的支持捏Thanks♪(・ω・)ノ。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值