这个while(!(--x))是当x-1=0时就再执行do里面的吧,这样不是只能输出1和一个空格吗,但是我运行这个代码会输出1和-2,怎么理解这个代码啊


#include<iostream>
using namespace std;
int main() {
    int x = 3;
    do { cout << (x -= 2) << " ";
    } while (!(--x));
    return 0;
}

do-while是先执行do再判断while