分支switch语句,while,for,do-while循环

一: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循环的执行流程

do while 循环中先执⾏图上的“语句”,执⾏完语句,在去执⾏“判断表达式”,判断表达式的
结果是!=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。所以在 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅。
 4.2do while循环示例

打印1到10

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值