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..)
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..)
第一步 初始k=5 , n=0 ;
循环开始 其实只有5次不像楼上所说还一直为真 还有K--呢 兄弟 题没错的
N次循环不管是case 还是default最后都是出switch到K--
也就是,5,4的时候过default然后直接跳出没有参数n的运算
1,2,3时 运算更简单了 1的时候执行两个n+=k 2,3时候执行1个
完毕
很简单 不是么?
初始化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--;
}
}
这种情况跟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);
}
这样, 你总该知道需要怎么算了吧~