以下程序的输出结果是()main() {char ch=‘A’; int i=0; do{ switch (ch++) { case ‘A’ :i++;break;

case‘B’: i--;case ‘C’:i+=2;break; case‘D’:i%=2;continue;case‘E’:i*=10;break;default:i/=3;}i++;}while (ch<‘G’);printf ("i=%d",i);}麻烦大家帮我解释哈这个程序

下次问人的时候,别让别人帮你整理了……
void main()
{
char ch='A';
int i=0;
do
{
switch (ch++)
{
case 'A':
i++;
break;
case 'B':
i--;
case 'C':
i+=2;
break;
case 'D':
i%=2;
continue;
case 'E':
i*=10;
break;
default:
i/=3;
}
i++;
}while (ch<'G');
printf("i=%d",i);
}

每次循环中,i的值的变动依次是:
0//还没循环
1,2//ch == 'A',在switch中执行“i++;”,执行“break;”语句跳出switch,执行“ch++”语句,ch == 'B',然后再执行“i++”。
1,3,4//ch == 'B',在switch中执行“i--;i+=2;”,执行“break;”语句跳出switch,执行“ch++”语句,ch == 'C',然后再执行“i++”。
6,7//ch == 'C',在switch中执行“i+=2;”,执行“break;”语句跳出switch,执行“ch++”语句,ch == 'D',然后再执行“i++”。
1//ch == 'D',在switch中执行“i%=2;”,执行“continue;”语句跳过本次循环,执行“ch++”语句,ch == 'E',不执行“i++”。
10,11//ch == 'E',在switch中执行“i*=10;”,执行“break;”语句跳出switch,执行“ch++”语句,ch == 'F',然后再执行“i++”。
3,4//ch == 'F',在switch中执行“i/=3;”,执行“break;”语句跳出switch,执行“ch++”语句,ch == 'G',然后再执行“i++”。此时,循环结束。
最后输出“i=4”。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答