关于switch语句,可以解释一下吗?


代码如下:
#include <stdio.h>
main()
{
char *s="12134211";
int v[4]={0,0,0,0},k,i;
for (k=0;s[k]!=' \0';k++)
{
switch(s[k])
{
case '1':i=0;break;
case '2':i=1;break;
case '3':i=2;break;
case '4':i=3;
}
v[i]++;
}
for (k=0;k<4;k++)
printf("%d ",v[k]);
}