switch语句
除了if语句外,C语言还提供switch语句来提供分支结构。
switch语句是一种特殊的if...else结构,用于判断条件有多个结果的情况,它把多重的else if改成更易用、可读性更好的形式。
上述语句中,根据表达式expression不同的值,执行相应的case分支,如果找不到对应的值,就执行default分支。
注:switch后的expression必须是整型表达式。
case后的值,必须是整型常量表达式。(也可以为字符,因为字符的内核是西文字符,也是整型常量)
if语句和switch语句的对比
![](https://i-blog.csdnimg.cn/direct/3b3d83e8c8d74964829a7b67f99cd9d1.png)
![](https://i-blog.csdnimg.cn/direct/eb24d335e487431cab35cf829aeb2211.png)
switch语句中的break
上述代码中,值得注意的点主要有:
1.case和后边的数字之间必须有空格。
2.每一个case语句中的代码执行完成后,需要加上break,才能跳出这个switch语句。
上述代码如果发生变化,要求输入1-5为工作日,输入6-7为休息日。
代码可以改为:
但是此代码过于繁琐,不管是从1,2,3...进入都是工作日,可以修改成上述语句更为简洁。
switch语句中的default
在使用switch语句的时候,我们经常可能会遇到一种情况,比如switch中的表达式的值无法匹配代码中的case语句的时候,这时候要不就不做处理,要不就在switch语句中加入default子句。
switch后边的expression的结果 不是value1,也不是value2的时候,就会执行default子句。
比如上述练习星期的打印,如果day的输入不是1-7的时候,如果我们需要提示:输入错误,则可这样完成代码:
switch中语句中的case和default的顺序问题
在switch语句中case语句和default语句是没有顺序要求的,只要我们的顺序是满足实际需求的就可以,通常我们将default子句放在最后处理。
while循环
C语言中提供了3种循环,while就是其中之一,接下来就介绍其中之一;
while语句的循环结构和if语句非常相似。
if和while的对比
具体对比如下,其中while语句是可以实现循环效果的。
while语句的执行流程
首先上来就是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语句,语句执行完后再继续判断,是否进行下一次判断。
while循环的实践
注:i=i+1代码所处的位置不可随意改变,改变需要结合代码进行查看。
练习:输入一个正的整数,逆序打印这个整数的每一位:
for循环
语法形式
for循环是三种循环中使用最多的,for循环的语法形式如下:
for循环的执行流程
for循环的初始化部分只被执行一次。
for循环的实践
练习:在屏幕上打印1-10的值。
while循环和for循环的对比
for和while在实现循环的过程都有初始化、判断、调整这三个部分,但是for循环的三个部分非常集中,便于代码的维护,而如果代码较多的时候while循环的三个部分就比较分散,所以从形式上for循环更优一些。
练习:计算1-100之间3的倍数的和。
do-while循环
语法形式
在循环语句中do while语句的使用最少,它的语法形式如下:
while和for这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环;
do while循环则是先直接进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真,就会进行下一次,表达式为假,则不再继续循环。
do while的执行流程
在do while循环中先执行图上的“语句”,执行完语句,再去执行“判断表达式”,判断表达式的结果是!0=0,则继续循环,执行循环语句;判断表达式的结果==0,则循环结束。
do while的循环体至少执行一次。
练习:
break和continue语句
在执行循环的过程中,如果某些状态发生的时候,需要提前终止循环,这是非常常见的现象,C语言提供了break和continue两个关键字,就是应用到循环中的。
break的作用是用于永久的终止循环,只要break被执行,直接就会跳出循环,继续往后执行;
continue的作用是跳过本次循环中continue后边的代码,在for循环和while循环中是有所差异的。
while循环中的break和continue
for循环中的break和continue语句
do while中的break和continue语句
循环的嵌套
上述有三种循环,这三种循环嵌套在一起的时候往往能更好的解决问题,这就是我们所说的循环的嵌套。
练习:
(3种方法)
goto语句
C语言提供了一种特别的语法,那就是goto语句和跳转标号,goto语句可以实现在同一个函数内跳转到设置好的标号处。
例如:
注:goto语句如果使用的不当,就会导致在函数内部随意跳转,打乱程序的执行流程,所以建议能不用就不用,但是如果在循环中,想要快速跳出多个循环的代码,goto语句就非常的方便。
for循环想提前退出得使用break语句,一个break语句只能跳出一层for循环,如果3层嵌套就得使用3个break才能跳出,在这种情况下使用goto语句就非常得便捷。