C语言之“ 分支和循环 ” (2)

          🌹个人主页🌹喜欢草莓熊的bear

             🌹专栏🌹:C语言基础


目录

前言

一、switch语句

1.1 if语句和switch语句的对比

1.2 switch语句中的break

1.3 switch语句中的default

1.4 switch语句中的case和default的顺序问题

二、while循环

2.1 if 和 while 的对比

 2.2 while语句的执行流程

 2.3 while循环的实践

三、for循环

3.1 语法形式

3.2 for循环的执行流程

3.3 for循环的实践

3.4 while循环和for循环的对比

四、do while循环

4.1 语法形式

4.2 do while循环的执行流程

4.3 do while循环的实例

五、break 和 continue 语句

5.1 while循环中的break 和 continue

break举例:

continue举例:

5.2 for循环中的break 和 continue

break举例:

continue举例:

 5.3 do while循环中的break 和 continue

六、go to语句

总结


前言

接着上期写的,本期内容包含:switch语句、for循环、while循环、do while循环、break和continue、goto语句这些。

一、switch语句

除了 if 语句外,C语言还提供了 switch 语句来实现分支结构。
switch 语句是⼀种特殊形式的 if...else 结构,用于判断条件有多个结果的情况。它把多重的 else if 改成更易用、可读性更好的形式。
switch (expression)
{
 case value1: statement
 case value2: statement
 default: statement
}
上面代码中,根据表达式 expression 不同的值,执行相应的 case 分支 。如果找不到对应的值,
就执行 default 分支
注:
switch 后的 expression 必须是整型表达式
case 后的值,必须是整形常量表达式

1.1 if语句和switch语句的对比

练习:输⼊任意⼀个整数值,计算除3之后的余数
使用if语句完成如下:
#include <stdio.h>
int main()
{
 int n = 0;
 scanf("%d", &n);
 if(n%3 == 0)
 printf("整除,余数为0\n");
 else if(n%3 == 1)
 printf("余数是1\n");
 else
 printf("余数是2\n");
 return 0;
}
使⽤switch语句改写如下:
#include <stdio.h>
int main()
{
 int n = 0;
 scanf("%d", &n);
 switch(n%3)
 {
 case 0:
 printf("整除,余数为0\n"); 
 break;
 case 1:
 printf("余数是1\n"); 
 break;
 case 2:
 printf("余数是2\n"); 
 break;
 }
 return 0;
}
上述的代码中,我们要注意的点有:
1. case 和后边的数字之间必须有空格
2. 每⼀个 case 语句中的代码执行完成后,需要加上 break ,才能跳出这个switch语句。

1.2 switch语句中的break

前⾯的代码中,如果我们去掉case语句中的break,会出现什么情况呢?
#include <stdio.h>
int main()
{
 int n = 0;
 scanf("%d", &n);
 switch(n%3)
 {
 case 0:
 printf("整除,余数为0\n"); 
 case 1:
 printf("余数是1\n"); 
 case 2:
 printf("余数是2\n"); 
 }
 return 0;
}

我们发现,7除以3本来余数是1,但是我们发现程序运行的结果多了⼀行“余数是2”的打印。
这是为什么呢?
原因是 switch 语句也是分支效果的,只有在 switch 语句中使用  break 才能在跳出 switch
句,如果某⼀个 case 语句的后边没有 break 语句,代码会继续玩下执行,有可能执行其他 case
语句中的代码,直到遇到 break 语句或者 switch 语句结束。就比如上面的代码就执行了 case 2 中的语句。所以在 switch 语句中 break 语句是⾮常重要的,能实现真正的分⽀效果。当然, break 也不是每个 case 语句都得有,这就得根据实际情况来看了。

1.3 switch语句中的default

评论 71
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值