分支语句if,switch

if语句

int main()
{
    单分支
    int age = 10;
    if (age < 18);
    printf("未成年\n");
    
    //双分支
    int age = 10;
    if (age < 18)
        printf("未成年\n");
    else
        printf("成年\n");

    

多分支
    int age = 68;
    if (age < 18)
        printf("未成年\n");
    else if (age >= 18 && age < 28)//区间条件要分开设置,用 &&(与) 连接,而不能写成(18<=age<28)
        printf("青年\n");
    else if (age >= 28 && age < 50)
        printf("壮年\n");
    else if (age >= 50 && age < 100)
        printf("老年\n");
    else
        printf("长命百岁\n");

  一个函数下面有多条printf()语句,应该用{}括起来


    if (age < 18)
        //printf("未成年\n");
        //printf("不能谈恋爱\n");//如果想打印两个的话必须写成代码块,不能直接这样写
        //此时不能打印出两条

    if (age < 18)

       {  //写成代码块
            printf("未成年\n");
            printf("不能谈恋爱\n");
        }//此时可以打印出两条

else 跟离得最近的且未匹配的if配对

 int mian()
{
    int a = 0;
    int b = 2;
    if (a == 1)
        if (b == 2) //若想下面的else和上面的if匹配只需要把此if写成程序块
            printf("hehe\n");
        else  //else 跟离得最近的且未匹配的if配对,
            printf("haha\n");
    //结果为空,a=0,根本就进不去if函数里面
    return 0;
}

 switch分支句

适合用于多分支

int main()
{
    int day = 0;
    scanf("%d", &day);
    switch (day) //输入几,就执行case几,()里面必须是整型
    {
    case 1: //入口 ,必须是整型常量,不能是caseA此类
        printf("星期1\n");
        break; //出口
    case 2:
        printf("星期2\n");
        break;
    case 3:
        printf("星期3\n");
        break;
    case 4:
        printf("星期4\n");
        break;
    case 5:
        printf("星期5\n");
        break;
    case 6:
        printf("星期6\n");
        break;
    case 7:
        printf("星期天\n");
        break;
    }

   return 0;
}

多个case执行的结果相同,则可以简化

    int main()
{
    int day = 0;
    scanf("%d", &day);

switch (day)
    {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:

        printf("工作日\n");
        break;
    case 6:
    case 7:

        printf("休息日\n");
        break;
    default://default -默认,若上面的都没有被执行则会执行这一条
        printf("输入错误\n");
        break;
    }

    return 0;
}

 易错点

 答案是A,continue一般用在循环语句中

 

 错选了A

进入分支时a=1,执行case1,b=30;没有break,则继续执行case2,b=20;没有break,则继续执行case3,b=16;没有break,则继续执行default,b=0;然后跳出循环,返回b=0

所以选D

switch实例

int main()
{
    int n = 1;
    int m = 2;
    switch (n)//输入为1,从case1开始执行
    {
    case 1:  //从case1开始执行
        m++;  //m=2+1=3,没有break,继续往下执行
    case 2:
        n++;  //n=1+1=2,没有break,继续往下执行
    case 3://
        switch(n)  //此时输入n=2,从case2开始执行
        {   //switch允许嵌套使用
        case 1:  //输入为2,不执行case1
            n++;
        case 2://执行case
            m++, n++;//m=3+1=4,n=2+1=3
            break;//跳出case3循环
        }
    case 4://继续执行
        m++;//m=4+1=5
        break;//结束循环
    default:
        break;//结束循环
    }
    printf("m= %d,n= %d\n", m, n);//打印结果为5,3
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值