分支结构以及switch中需要注意的点

目录

一、if语句

二、switch语句


一、if语句

1.if语句

  if语句分为单分支与多分支,但是为了方便理解我将它分为三类

(1).单个if语句

if(表达式)

        语句1;

if(a  > b)

        a = b;

如果if后的表达式成立,那么执行语句1,否则不执行

(2)if - else语句

if(表达式)

        语句1;

else

        语句2;

if(a > b)

        a = b;

else

        a = c;

else后不需要跟随表达式,如果if后的表达式成立,执行语句一,否则执行语句二。

(3)if - else if - (else)语句

if(表达式1)

        语句1;

else if (表达式2)

        语句2;

else if  (表达式3)

        语句3

else

        语句4

if(a > b)

        a = b;

else if(a  > c)

        a = c;

else if (a > d)

        a = d;

else

        a = f;

其中else语句可以省略

值得注意的是无论是哪种类型,最终只能由一个分支进入,产生一个对应的结果。若语句中没有设置else语句,那么结果为“空”。

其等价于

else

        ;

若语句中内容不止一个那么则需要大括号扩住。

if(a  > b)

{

        a = b;

        c = d;

}

二、switch语句

switch(整形表达式)

{

case 整形常量表达式1:

        语句1;

case 整形常量表达式2:

        语句2;

default:

        语句3;

}

整形表达式包括 整型int, 长整型long(int),长长整形 long long(int) ,短整形short,而因为字符串char类型,在内存中的存储实际上是其阿斯克码的值,所以也属于整型。

switch分支中,由某个表达式进入对应的case语句,执行相应的语句,并且会一直执行到结束,因此一般使用时会在语句中加入break退出。

但是也有一些例外

int n;
    scanf("%d", &n);
    switch(n) 
    {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
        {
            printf("工作日\n") ;
            break;
        }
        case 6:
        case 7:
        {
            printf("休息日\n");
            break;
        }
        default :
        {
            printf("输入错误\n");
            break;
        }
    }

default语句相当于if- else分支中的else语句,一个switch语句中只能有一个default语句,后面不需要跟随表达式。但是不同的是default可以放置于任意的位置。

  

 int n;
    scanf("%d", &n);
    switch(n) 
    {
        case 1:
        {
            printf("1\n");
            break;
        }
        case 2:
        {
            printf("2\n");
            break;
        }
        default :
        {
            printf("3\n");
            break;
        }
    }

最后需要注意的是,case语句和default语句本质上是等价的,例如在没有break的条件下如果default夹在case语句中间,default也会按照顺序被执行

 int n;
    scanf("%d", &n);
    switch(n) 
    {
        case 1:
            printf("1\n");
        default :
            printf("3\n");
        case 2:
            printf("2\n");
    }

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值