现象:不知道k的运算规则了,尤其是本代码中的while后的意思
int main(){int k=10; char c='a';do{switch(c++)
{case 'a':k++; case 'b':k--;case 'c':k+=3;break;case 'd':k=k%4;}}while(c!='c');printf("%d\n",k);return 0;
15
c 初始是 'a'
第1次循环 switch (c++) 中 c++是先判断c的值, 再将c的字符编码加1 变成'b'。
先判断c的值是'a',跳到case 'a':处开始连着执行 k++; k--; k += 3; 直到遇到 break;才跳出switch,之后k是13
然后while (c != 'c')是判断c的值不是'c'才继续循环。当前c的值是'b'就继续循环。
第2次循环 switch (c++) 先判断c的值是'b',(再将c的字符编码加1 变成'c')。跳到case 'b':处开始连着执行 k--; k += 3; 直到遇到 break;才跳出switch,之后k是15,
然后while (c != 'c')判断当前c的值是'c'就结束循环了。
最后k是15
如有帮助,望采纳!谢谢!