这个程序是怎么执行的?

来源:百度知道 编辑:UC知道 时间:2024/05/05 06:18:49
main()
{
char *s="12134211";
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{
default:v4++;
case'1':v1++;
case'3':v3++;
case'2':v2++;
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
}

怎么理解switch语句?这类题型怎么做?

你要注意了,每个case语句都没有break;所以要从条件成立开始的那个case往后的case都要执行,比如s[k]= '3';那么函数除执行v3++,还要执行v2++;
如果default条件成立的话,v4++,v1++,v3++,v2++都要执行。

你自己试一下,结果为v1=5,v2=8,v3=6,v4=1。