第 7 节-流程控制语句(二)

121 阅读5分钟

流程控制语句(二)

3.1 switch 语句

图片来自 upward337 博客:

  • 作用: 把所有的选择一一列举出来,根据不同的条件任选其一。

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 的位置省略
  • switchif的第三种格式各自的使用场景
格式细节说明:
表达式:计算结果只能为(字符/整数)
case:值只能是(字符/整数)的字面量,不能是变量
case:值不允许重复
break:表示中断,结束的意思,结束switchi语句
default:所有情况都不匹配,执行该处的内容
default可以写在任意位置,甚至可以省略不写
使用细节:
switchif第三种格式各自的使用场景

案例说明代码:

// 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 vcfor 循环的书写方式

① 书写方式

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循环。