循环有个小问题,求助一下
////////////////////////////////////////////////////////////////////////////////////////在下面////////////////////////////
/////////////////////////////////////////////////////////////
#include <stdio.h>
main()
{ char *s = "120119110";
int n0,n1,n2,nn,i;
n0=n1=n2=nn=i=0;
do{
switch(s[i++])
{ default: nn ++;
case '0': n0 ++;
case '1': n1 ++;
case '2': n2 ++;
}
} while(s[i]);
printf("n0=%d,n1=%d,n2=%d,nn=%d\n",n0,n1,n2,nn);
}
红色标记的地方是,原因是当s[2]=0时,下面的循环条件while(s[2]);不是变成了while(0)了就直接退出循环了,可是为什么最后还是输出:n0=3,n1=8,n2=9,nn=1呢?求助一下。