关于if contiune的一道C问题,有点小疑惑

void main()
{ int x=8;
for(;x>0;x--)
{ if(x%3) { cout << x-- ; continue;}
cout << --x ;
}
}
程序的运行结果是( )。
A) 7,4,2, B) 8,7,5,2, C) 9,7,6,4, D) 8,5,4,2,
这个答案为什么不是7,5,4,2?
具体是怎么跑的。。

void main()
{
int x=8;
for(;x>0;x--)
{
if(x%3) {
cout << x-- ;
continue; // 进入这里后,下面的 cout << --x ; 就不会执行了
}
cout << --x ;
}
}
第一次循环,x为8,因为8%3 为真,所以进入if语句,打印 cout <<x-- , 这里是先打印x,然后在--x

x--是先使用再减, 所以先输出8

 void main()
{ 
    int x = 8 ,i = 1;

    for(;x>0;x--)
    { 
        if(x%3) 
        { 
            cout << x-- << " " << i ++ <<endl; 
            continue;
        }
        cout << --x << " " << i ++ <<endl;
    }
}

这个代码会详细告诉你运行的步骤。。。

你没有理解x--和--x的关系,cout<<x--,是i先输出x,再执行x-1,你的疑惑跟contiune无关

x--是后置操作,--x是前置操作,