流程控制语句(二)
3.1 switch 语句
- 作用: 把所有的选择一一列举出来,根据不同的条件任选其一。
switch基本格式
switch ()
{
case 1:
break;
case 2:
break;
case 3:
break;
……
}
default:
实例
1
我的朋友家里有7个抱枕
周一:使用初音未来抱枕
周二:使用蕾姆抱枕
周三:使用安柏抱枕
周四:使用迪诺抱枕
周五:使用芭芭拉抱枕
周六:使用可莉抱枕
周日:使用丽莎抱枕
// 5_1_switch_demo.c
#include <stdio.h>
int main()
{
int day = 4;
switch (day)
{
case 1:
printf("周一:使用初音未来抱枕\n");
break;
case 2:
printf("周二:使用蕾姆抱枕\n");
break;
case 3:
printf("周三:使用安柏抱枕\n");
break;
case 4:
printf("周四:使用迪诺抱枕\n");
break;
case 5:
printf("周五:使用芭芭拉抱枕\n");
break;
case 6:
printf("周六:使用可莉抱枕\n");
break;
case 7:
printf("周日:使用丽莎抱枕\n");
break;
default:
printf("没有这个星期\n");
}
}
- 程序运行结果
Part1:练习:
📕:练习
1
// 5_2_switch_demo.c
#include <stdio.h>
int main()
/*
需求:键盘录入星期数,显示今天的减肥活动。
周一:跑步
周二:游泳
周三:慢走
周四:动感单车
周五:拳击
周六:爬山
周日:好好吃一顿
*/
{
int day;
printf("请输入星期数:");
scanf("%d", &day);
switch (day)
{
case 1:
printf("周一:跑步\n");
break;
case 2:
printf("周二:游泳\n");
break;
case 3:
printf("周三:慢走\n");
break;
case 4:
printf("周四:动感单车\n");
break;
case 5:
printf("周五:拳击\n");
break;
case 6:
printf("周六:爬山\n");
break;
case 7:
printf("周日:好好吃一顿\n");
break;
default:
printf("没有这个星期\n");
}
}
3.1.1 switch语句的细节
细节说明:
- 1.表达式:计算结果只能为(字符/整数)
- 2.case:值只能是(字符/整数)的字面量,不能是变量
- 3.case:值不允许重复
- 4.break:表示中断,结束的意思,结束switch语句
- 5.default:所有情况都不匹配,执行该处的内容
3.1.2 switch语句的其它知识点
default的位置省略switch和if的第三种格式各自的使用场景
格式细节说明:
表达式:计算结果只能为(字符/整数)
case:值只能是(字符/整数)的字面量,不能是变量
case:值不允许重复
break:表示中断,结束的意思,结束switchi语句
default:所有情况都不匹配,执行该处的内容
default可以写在任意位置,甚至可以省略不写
使用细节:
switch和if第三种格式各自的使用场景
案例说明代码:
// 5_3_switch_demo.c
// 5_1_switch_demo.c
#include <stdio.h>
int main()
{
// 1.定义变量
int number = 3;
// 2.使用switch语句
switch (number)
{
case 1:
printf("你输入的是1\n");
break;
case 2:
printf("你输入的是2\n");
break;
case 3:
printf("你输入的是3\n");
break;
default:
printf("你输入的是其他数字\n");
break;
}
return 0;
}
3.1.3 case穿透
// 5_1_switch_demo.c
#include <stdio.h>
int main()
{
// 1.定义变量
int number = 3;
// 2.使用switch语句
switch (number)
{
case 1:
printf("你输入的是1\n");
break;
case 2:
printf("你输入的是2\n");
break;
case 3:
printf("你输入的是3\n");
// break;
default:
printf("你输入的是其他数字\n");
break;
}
return 0;
}
练习:
2
📕根据月份输出对应的季节
-
需求:键盘录入月份数,输出对应的季节。
- 春季:3、4、5月份
- 夏季:6、7、8月份
- 秋季:9、10、11月份
- 冬季:12月份到次年的2月份
// 1.键盘录入月份数
// 2.根据月份输入对应的季节
// 5_1_switch_demo.c
#include <stdio.h>
int main()
{
/*
- 需求:键盘录入月份数,输出对应的季节。
- 春季:3、4、5月份
- 夏季:6、7、8月份
- 秋季:9、10、11月份
- 冬季:12月份到次年的2月份
*/
int month;
printf("请输入月份数:");
scanf("%d", &month);
switch (month)
{
case 1:
printf("冬季\n");
break;
case 2:
printf("冬季\n");
break;
case 3:
printf("春季\n");
break;
case 4:
printf("春季\n");
break;
case 5:
printf("春季\n");
break;
case 6:
printf("夏季\n");
break;
case 7:
printf("夏季\n");
break;
case 8:
printf("夏季\n");
break;
case 9:
printf("秋季\n");
break;
case 10:
printf("秋季\n");
break;
case 11:
printf("秋季\n");
break;
case 12:
printf("冬季\n");
default:
printf("输入有误\n");
break;
}
return 0;
}
练习:
3.2 循环结构
循环重复执行某件事情
1.循环的三要素
- 初始化语句
- 条件判断语句
- 条件控制语句
2.C语言中的循环结构
- for
- while
- do…while
3.2.1 for 循环
1.代码格式
格式:
for(初始化语句;条件判断语句;条件控制语句)
{
循环体语句;
}
for(int i = 1; i <= 100, i++)
{
printf("该代码将运行 100 次\n");
}
练习:
3
📕对女朋友说的话
#include<stdio.h>
int main(){
for(int i=1;i<=10;i++)
{
printf("我们结拜为兄弟如何\n");
}
return 0;
}
2.代码执行流程
结论
- 初始化语句只执行一次
- 判断语句成立,循环继续
- 判断语句不成立,循环结束
3.2.2 vc中for 循环的书写方式
① 书写方式
int i = 1;
for(;i <= 100; i++)
{
printf("一\n");
}
② 书写方式
int i;
for(i = 1;i <= 100; i++)
{
printf("一\n");
}
练习:
4
📕基础案例1:正向/反向输出数字
#include <stdio.h>
int main()
{
for (int i = 1; i <= 5; i++)
{
printf("%d\n",i);
}
return 0;
}
#include <stdio.h>
int main()
{
for (int a = 5; a >= 1; a--)
{
printf("%d\n", a);
}
return 0;
}
练习:
5
📕基础案例2:求和
#include <stdio.h>
int main()
{
int sum;
// 1.获取 1-5 之间的每一个数
for (int i = 1; i <= 5; i++)
// 2.获取 1-5之间的每一个数
{
sum += i;
// sum = i + sum;
}
printf("1-5的和是:%d\n", sum);
return 0;
}
累加思想
3.3 while循环
3.3.1 #### 格式:
初始化语句;
while(条件判断语句){
循环体;
条件控制语句;
}
练习1:打印5次HelloWorld
练习2:珠穆朗玛峰
3.3.2 do...while循环
本知识点了解即可
格式:
初始化语句;
do{
循环体;
条件控制语句;
}while(条件判断语句);
特点:
先执行,再判断。
3.3.4三种格式的区别:
for和while循环,是先判断,再执行。
do...while是先执行,再判断。
当知道循环次数或者循环范围的时候,用for循环。
当不知道循环次数,也不知道循环范围,但是知道循环的结束条件时,用while循环。