C语言-分支和循环语句3

switch语句

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

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

上述语句中,根据表达式expression不同的值,执行相应的case分支,如果找不到对应的值,就执行default分支。

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

        case后的值,必须是整型常量表达式。(也可以为字符,因为字符的内核是西文字符,也是整型常量)

if语句和switch语句的对比

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语句就非常得便捷。

  • 21
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值