主题:请高手帮我分析一下我遇到的疑难问题?
题目是:分样下列程序的输出结果:
#include<iostream.h>
#include<stdlib.h>
void main()
{
int i(1),j(0),m(1),n(2);
switch(i++)
{
case 1:m++;n++;
case 2:switch(++j)
{
case 1:m++;
case 2:n++;
}
case 3:m++;
n++;
break;
case 4:m++;
n++;
}
cout<<m<<','<<n<<endl;
system("PAUSE");
}
系统运行结果是:4, 5
我要问的疑问就是:switch(i++)中的i++的值倒底是1,还是2,而我按照前面所学的知识,我认为i++的值是1,而只有i变量本身的值才等于2,并且按书上所说,这里算的又应该是switch后面括号内的表达试的值,那这样我认为在这里就应该不是变量i的值啦。那这样子就应该执行 case 1语句啦,最后的值应该是2,3而不是系统运行的结果4, 5啦
请高手帮我分析一下,我的问题出在哪里??
#include<iostream.h>
#include<stdlib.h>
void main()
{
int i(1),j(0),m(1),n(2);
switch(i++)
{
case 1:m++;n++;
case 2:switch(++j)
{
case 1:m++;
case 2:n++;
}
case 3:m++;
n++;
break;
case 4:m++;
n++;
}
cout<<m<<','<<n<<endl;
system("PAUSE");
}
系统运行结果是:4, 5
我要问的疑问就是:switch(i++)中的i++的值倒底是1,还是2,而我按照前面所学的知识,我认为i++的值是1,而只有i变量本身的值才等于2,并且按书上所说,这里算的又应该是switch后面括号内的表达试的值,那这样我认为在这里就应该不是变量i的值啦。那这样子就应该执行 case 1语句啦,最后的值应该是2,3而不是系统运行的结果4, 5啦
请高手帮我分析一下,我的问题出在哪里??