永发信息网

一道关于switch语句的题

答案:4  悬赏:70  手机版
解决时间 2021-05-04 18:26
  • 提问者网友:贪了杯
  • 2021-05-03 20:37

main()

{    int k=5 , n=0 ;

     while ( k>0 )

    {   switch (k)

         {  default : break ;

            case 1 :  n+=k ;

            case 2 :

            case 3 :  n+=k ;

        }

       k--;

  }

  printf("%d\n",n);

}

 

某些细节算不对,希望能得到详细的解析过程 谢谢(在default:break这一块很模糊,不知道是直接挑出还是继续case1..)

最佳答案
  • 五星知识达人网友:三千妖杀
  • 2021-05-03 21:14

第一步 初始k=5 , n=0 ;


循环开始  其实只有5次不像楼上所说还一直为真  还有K--呢 兄弟  题没错的


N次循环不管是case 还是default最后都是出switch到K-- 


也就是,5,4的时候过default然后直接跳出没有参数n的运算


1,2,3时  运算更简单了  1的时候执行两个n+=k  2,3时候执行1个 


完毕


很简单 不是么?

全部回答
  • 1楼网友:污到你湿
  • 2021-05-04 01:10

初始化k=5 然后k>0永远为真,你是要求1到5的和吧,这样子就行了

main()

{ int k=5,sum=0;

for(int i=0;i<k;i++)

{sum+=i;

}

printf("%d\n",sum);

}

~~~~~~~~~~~~~~~~~~~~

或者

main()

{

int k=5,n=0

while(k>0)

{

n+=k;

k--;

}

}

  • 2楼网友:往事埋风中
  • 2021-05-03 23:35
我不知道你想要达到什么目的,但是一般的都把default放在最后,而不是最前。你可以说说你要达到什么目的吗?
  • 3楼网友:像个废品
  • 2021-05-03 22:36

这种情况跟default放最后一样.

你可以把这段代码看做:

main(){   

    int k=5 , n=0 ;

     while ( k>0 ){  

    switch (k){ 

            case 1 :  n+=k ;

    case 2 :

    case 3 :  n+=k ;

    default : break ;

    }

    k--;

  }

  printf("%d\n",n);

}

这样, 你总该知道需要怎么算了吧~

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯