将分支与循环语句之前,我们先来认识了解c语言的各种语句
一、 什么是语句?
C语言语句可以分为以下的五种
1 表达式语句
2 函数调用语句
3 控制语句
4 复合语句
5 空语句
本章重点讲解 3控制语句,那么控制语句是什么呢?其实控制语句就是指,用于控制程序的执行过程,以实现程序的各种结构方式。(有顺序结构、选择结构、循环结构),它们由特定的语句定义符组成。
其实C语言控制语句又可以分为9种3类
1 条件判断语句也叫分支语句 如: if语句 switch 语句
2 循环语句 如: for循环语句 while语句 do while语句
3 转向语句 如 break continue. go to. return语句
二、if语句
2.1 首先介绍分支语句的if语句
if语句的语法形式如下:
if(表达式)
语句
如果表达式为真则执行语句,如果为假,则语句不执行,那什么是真什么是假呢?其实在C语言中真是非0,假是0,也就是说,表达式为0则语句不执行,否则就执行。
例如:输入一个数,判断是否为奇数
它的执行流程图如下:
2.2 else
例1:如果这个数不是奇数,那就是偶数,如何用代码表示呢?可以用if else 语句表示代码如下:
例2:
输入一个年龄,如果大于18输出成年,否则输出未成年
如果输入一个年龄>=18才可以谈恋爱,有些人可能会写成这样子的代码:
运行结果如下:
你会发现无论输入大于等于18的数还是小于18的数都会打印可以谈恋爱了,这是因为if语句只能控制一条语句,对于printf("可以谈恋爱了\n")是单独的一条语句,不关if语句是真是假都会被执行,如果if语句想要同时执行多条语句怎么办呢?只需要用{}讲代码括起来,else语句也同样可以。
如下代码
2.3 嵌套if
在if else语句中,else可以与宁外一个if语句连用,构成多重判断
例如:输入一个整数数,判断它是0,是正整数,还是负整数
2.4else悬空问题
请看如下代码:
这就是else悬空问题,可能很多人会认为代码的执行过程是先判断if(a==0)为假执行else语句打印hehe,然而却什么都没打印,为什么呢?因为else总是跟它最接近的if想匹配,所以else是与第二个if匹配的,如果第一个if语句为假,后边的if else就没法执行了,最终什么都没打印。
如果把代码改成下面这样就更加容易理解
如果我们希望else 与第一个if相匹配,也可以这样修改代码:
只要我们加上适当的{}括号代码的逻辑结构就会更加的清晰,可读性也会得到提高。
三、关系操作符
讲之前我们先来了解一下关系操作符有那些 如下:
>大于
< 小于
>= 大于等于
<= 小于等于
==等于
!=不等于
四、条件操作符
上面我们了解了关系操作符有那些,那么什么是条件操作符呢?条件操作符也叫三目操作符,需要三个操作数形式如下:
exp1?exp2:exp3
计算逻辑是如果exp1为真则执行exp2,否则只想exp3,下面用一个代码体会一下三目操作符的运0算过程,首先用if语句实现该代码再用三目操作符实现
例二:
使用条件表达式找出两个数中的最大值
例3:闰年判断
闰年判断的规则:
能被4整除并且不能被100整除
能被400整除
五、switch语句
5.1switch语句介绍与基本的语法
switch语句是一种特殊的if else结构,用于判断条件有多个的情况。它把多重的else if改成更易用可读性更好的形式。
1switch(expression){
2case value1: statement
3case value2: statement
4default: statement
}
上面代码中根据表达式expression不同的值,执行相应的case语句。如果找不到相对应的值,就用default分支语句。注意,expression必须是整形表达式,case后面的值,必须是整型常量表达式。
5.2if语句和Switch语句的对比
例1 输入任意一个整数值,计算除3之后的余数。
使用If语句实现代码
使用switch语句实现代码
5.3switch语句中的break
前面代码中如果去掉break会发生什么事呢?
你会发现6除3的余数是0但是却打印了余数是1的语句,如果case语句后面没有break语句代码会继续执行下去,有可能会执行其他的case语句,直到遇到break语句或switch语句才停止,当然不是每一个case语句都需要brake,具体情况具体分析。
例2输入一个数字打印对应的星期几
如果发生需求星期一到星期五打印工作日星期六到星期天打印休息日参考代码如下:
5.4switch语句中的default
如果switch表达式无法与case语句匹配时,要不要做处理,根据具体情况而定,如果需要处理,就需要加入default语句了如下例代码:
六、while循环语句
6.1if与while的对比,下面用一段代码对比一下
打印haha
无限循环打印haha
6.2while语句执行流程
while实践
例1:打印1到10的数字
例2:输入一个正整数逆序打印每一位
七、for循环
7.1循环执行流程
7.2for代码实践
![](https://img-blog.csdnimg.cn/direct/7f71a8c905a7452c9c71d49a9db8995a.png)
![](https://img-blog.csdnimg.cn/direct/ab15e283ef984cd189f6af5c95c68144.png)
八、do while循环语句
8.1do while语法形式
do
语句
while(表达式)
8.2do while执行流程图
8.3do while实践
例1:打印1到10的数字
例2:输入一个数计算它是几位数
九、循环的嵌套
下面是几个代码练习题
例1:
打印100~200之间的素数