一:switch语句
除了if语句外,c语言还提供了switch语句来实现分支结构。
switch语句是一种特殊形式的if...else结构,用于判断条件有多个结果的情况。
switch(a)
{
case value1:statement
case value1:statement
default:statement
}
根据变量a不同的值,执行相应的case分支。如果找不到对应的值,就执行default分支。
注意:
switch后的表达式必须是整形表达式
case后的值,必须是整形常量表达式
1.1if语句和switch语句的对比
输入一个任意的整数值,计算除3之后的余数
如果使用if语句完成
如果使用switch语句写
上述代码,我们要注意的点有:
case和后面的数字之间必须有空格
每一个case语句中的代码执行完成后,需要加上break,才能跳出switch语句。
1.2switch语句中的break
前面的代码,如果去掉case语句中的break,会出现什么情况呢?
我们发现,7除以3的余数是1,但是我们的程序多了一行“余数是2”的打印。
原因是switch语句中使用break才能跳出switch语句,如果一个case语句后面没有break语句,代码就会继续执行下去,有可能执行其他case语句中代码,直到遇到break语句或者switch语句结束,就比如上面的代码执行了case 2的语句。
所以在 switch语句中break 语句是非常重要的,能实现真正的分支效果。
1.3switch语句中的default
在使用switch语句的时候,我们经常可能遇到一种情况,比如switch后的表达式中的值无法匹配代码中的 case语句的时候,这时候要不就不处理,要不就得在switch语句中加入default。
switch(expression)
{
case value 1:statement
case value 2:statement
default:statement
}
switch后面的expression的结果不是value1,也不是value2的时候,就会执行default子句。
1.4switch语句中的case和default的顺序问题
在switch语句中case子句和default子句有要求顺序吗?没有顺序要求的,只要你的顺序是满足实际需求的就可以。
不过我们通常把default子句放在最后处理的。
二:while循环
c语言提供了3中循环语句,while就是其中的一种,接下来就介绍一下while语句,
while语句的语法结构和if语句非常相似。
2.1:if和while的对比
if(表达式)
语句;
while(表达式)
语句;
具体写一个代码对比
2.2while语句的执行流程
2.3while循环的实践
三:for循环
for循环是三种循环中使用更多的,for循环的语法形式如下:
for(表达式1;表达式2;表达式3)
表达式1 用于循环变量的初始化
表达式2 用于循环结束条件的判断
表达式3 用于循环变量的调整
3.1 for循环的执行流程
首先执行表达式1初始化循环变量,接下来就是执行表达式2的判断部分,表达式2的结果如果==0,则循环结束;表达式2的结果如果!=0则执行循环语句,循环语句执行完后,再去执行表达式3,调整循环变量,然后再去表达式2的地方执行判断,表达式2的结果是否为0,决定循环是否继续,整个的循环过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2,循环语句,表达式3再循环。
3.2 for循环的实践
打印10到20
四:do-while循环
在循环语句do while语句的使用最少,它的语法如下:
do
语句;
while(表达式);
while和for这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环。
而do while循环是先进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真,就会进行下一次,表达式为假,就不会继续循环。
4.1 do while循环的执行流程
4.2do while循环示例
打印1到10