Tea》 2023-04-30 16:03 采纳率: 100%
浏览 14
已结题

C语言switch语句

在switch语句中,如果找到了满足的case情况,是不是就不再看之后的case而直接执行其所属的语句啊,直到遇到break或者switch结束?没理解错吧?

img

#include <stdio.h>

int main()
{
    int i = 2;
    int j;

    printf("请输入j的值:\n");
    scanf("%d", &j);
    switch (j)
    {
    case 1:
        printf("%d\n", i);
    case 'T':
        printf("%d\n", i + 1);
        j++;
        break;
        printf("这个语句不再执行!~\n");
    case 2:
        printf("%d\n", i + 2);
    case '3':
        printf("%d\n", 2 * j + 3);
    default:
        i--;
        printf("今天是周日!\n");
    case 5:
        printf("%d", i + 4);
        break;
    case '6':
        printf("%d", i + i);
    }
    /*
    1>在switch语句中,若case后面没有加break语句,则会从允许进行的语句开始,不再判断情况而直接执行后面的语句,
    直到执行到break语句(包含default语句中的break)或者执行完所有语句后跳出switch。
    2>所有语句只会执行一次,而不会因为default语句没有加break而继续执行default语句直到满足后面情况。
    */

    int c = 0, k;

    for (k = 1; k < 3; k++)
        switch (k)
        {
        default:
            c += k;
        case 3:
            c++;
            break;
        case 4:
            c += 2;
            break;
        }
    /*
    c = 0;
    k = 1, c = 1,执行case 3, c = 2;
    k = 2, c = 4,执行case 3, c = 5;
    */
    printf("%d", c);

    return 0;
}


展开全部

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-04-30 20:02
    关注

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 5月8日
  • 已采纳回答 5月1日
  • 创建了问题 4月30日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部