switch语句实现多分支结构

本文介绍了switch语句作为多分支结构的用法,详细阐述了其匹配过程和注意事项,特别是如何通过break语句来控制流程。通过示例代码展示了switch语句的执行逻辑,强调了合理利用break避免意外执行的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

switch语句是多分支语句,用来实现多分支结构

用法:

switch(表达式)  //表达式不能是浮点型

{

case 常量c1:

语句1

case 常量c2:

语句

……

case 常量cn:

语句n

default:

语句n+1

}

首先switch里的表达式会和c1比较,如果相等则执行语句1,反之继续判断c2,,以此类推,直到判断cn,相等执行语句n,反之执行语句n+1

这里要注意 假如表达式的值与其中一个case后面的值一样的话,会执行输出该值语句和后面所有的case的下的语句(包括default下的语句),这个问题可以使用break语句开跳出switch语句结构(break加在case语句块内的语句后面)

代码:

/*switch实现多分支结构
范例 这是星期几*/
#include <stdio.h>
int main()
{
    int week;
    scanf("%d",&week);
    switch(week)
    {
        case 1:
            printf("monday\n");break;
        case 2:
            printf("tuesday\n");break;
        case 3:
            printf("wednesday\n");break;
        case 4:
            printf("thursday\n");break;
        case 5:
            printf("friday\n");break;
        case 6:
            printf("saturday\n");break;
        case 7:
            printf("sunday\n");break;
        default:
            printf("error");
    }
	return 0;
}
简单四则运算范例

代码:

/*switch实现多分支结构
范例 简单四则运算(了解思路自编写)*/
#include <stdio.h>
int main()
{
    float a,b;
    char c;
    printf("请输入俩数运算");
    scanf("%f%c%f",&a,&c,&b);
    switch(c)
    {
    case '+':
        printf("%f%c%f=%f",a,c,b,a+b);break;
    case '-':
        printf("%f%c%f=%f",a,c,b,a-b);break;
    case '*':
        printf("%f%c%f=%f",a,c,b,a*b);break;
    case '/':
        if(b!=0)
            printf("%f%c%f=%f",a,c,b,a/b);
        else
            printf("分母不能为0\n");break;
    default:
        printf("运算符输入错误");

    }
	return 0;
}

/*switch实现多分支结构
课后观察*/
#include <stdio.h>
int main()
{
    int a=2,b=7,c=5;
    switch(a>0)
    {
        case 1:
            switch(b<0)
        {
            case 1:
                printf("@");break;
            case 2:
                printf("!");break;
        }                                  //第一个大case后面没有break  所以输出下面的语句,无论条件是否成立,均输出
        case 0:
            switch(c==5)
            {
            case 1:
                printf("*");break;
            case 2:
                printf("#");break;
            default:
                printf("#");break;
            }
            default:
                printf("&");
    }
    printf("\n");
	return 0;
}

结果为*&     多次判断,灵活应用break的特性进行编写



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值