分类：电脑/网络-程序设计-C/C++
问题：下面程序的运行结果是?main(){intx=0,y=0,z=0 
main(){intx=0,y=0,z=0;do{swch(y++)case1:x++;break;case3:x+=3;break; }z++;}while(y<5);printf("x=%d,y=%d,z=%d\n",x,y,z);}答案是x=0,y=5,z=1可是我算了好几遍z都得2,就是Z不会做,请大家详细的说说过程,谢谢大家了!!!
回答：  {   }   都没有配对……

不过我还是看懂你的意思了。的确应该为2，答案错了。

第一次循环，y++表达式的值为0，去default，x=0，continue
此时x=0，y=1，z=0

第二次循环，去case 1，x++，break退出switch，z++
此时x=1，y=2，z=1

第三次循环，去default，x=1%2，continue
此时x=1，y=3，z=1

第四次循环，去case 3，x+=3，break退出switch，z++
此时x=4，y=4，z=2

第五次循环去default，x=4%2，continue
此时x=0，y=5，z=2

while条件不成立，退出循环
输出结果0 5 2