为什么输出答案是10,30,10. 难道不是20,30,20吗?if(a>b)不执行然后b的值赋给a就是20,c的值赋给b就是30,a的值赋给c就是20

阅读下面的程序,写出程序的输出结果:

#include

using namespace std;

int main( )

{

int a, b, c;
a = 10;
b = 20;
c = 30;
if (a > b)
a = b;
b = c;
c = a;
cout << a << "," << b << "," << c << endl;
return 0;

}

难道if的执行语句缩不缩进都可以然后自动把a=b;视作执行语句

因为if语句后面没加花括号,系统只影响if后面的一条条件语句也就是a=b;又因为if(a>b)不成立所以系统不会执行a=b;这条语句,所以a的值没变还是10,而b=c;和c=a;语句继续执行得到a=10,b=30,c=10