C语言分支语句和循环语句
一、分支语句
1.if语句
()中的表达式为真,执行语句,如果只有1条语句,可以不加{}。
2.if-else语句
()中表达式为真,执行语句1,如果不满足,执行语句2
上面的代码等价于if-else语句等价于exp1?exp2:exp3
3.else-if语句
表达式1为真执行语句1,否则表达式2为真执行语句2,两个都不满足执行语句3......
编译器不看else和哪个if对齐就和谁配对,之和和它最近的且没有配对的if配对
注意break不适用于if,只适用于循环语句和switch
4.switch语句
如果满足一个case后,语句里没有break,会接着执行下面case的语句,直到遇见break或离开switch语句
所以我们可以每个case都加break得到一个结果
或者多个case只写一个语句,加上break(理论上最后一个case不用加break,但为了避免一些问题,还是加上,没有和printf对齐,有点丑)
如果找不到case中符合的语句加上default
小提示:1.switch语句对顺序没有严格的要求,但习惯来说default放在最后
2.switch可以嵌套使用
3.char也是整型
拓展:如果想输入0时直接退出整个程序,用exit(0) 头文件是stdlib。
二、循环语句
1.while语句
()中表达式结果为真,执行语句,执行后判断表达式是否为真,继续执行语句,当不满足时循环结束。
2.do-while
特点:至少执行一次,先执行再判断
3.for语句
表达式1为初始化变量,表达式2为条件判断,判断循环何时终止,表达式3为循环条件调整
表达式2部分经常把==写成=,迷惑
三个表达式都可以省略,但;不能省略,如表达式2即条件判断部分被省略,判断条件就是恒为正,每个部分都可以有多个表达式,用,隔开,不要随便省略,如
顺序:表达式1 表达式2满足 循环语句 表达式3 表达式2满足 循环语句 表达式3 表达式2不满足,离开循环。
注意:不可以在循环语句内改变循环变量,防止循环失去控制
for循环里可以套for循环
如果循环里的变量在上一轮循环结束后,进入下一轮循环中没有被重新初始化,它就还是上一轮的值,例如:
i=0,j=10结束一次大循环后,当i=1时,j还是为10。
continue:跳过该循环下面的语句,进入下一循环的入口判断,不能用于switch
break:终止所在循环,用于switch和循环语句,对if不起作用,break可以放在if语句中表示满足条件时跳出循环