我正在看Mojam(实况游戏编程,在HumbleBundle上),我在那里看到了这段代码
here是代码的屏幕截图)
我想知道最后if语句(!wasmoving && ismoving)中的条件表达式如何评估为true(确实如此,程序员对其进行了编译并且动画正在运行)。
我已经在我的编译器中尝试过

#include <iostream>
#include <cstdlib>
using namespace std;
int main(){
    bool ismoving=5>0;
    bool wasmoving=ismoving;
    cout << "ismoving"<< ismoving << " oraz wasmoving " << wasmoving << endl;
    if (!wasmoving && ismoving) cout << "1st = true 2nd = true" << endl;
    system("PAUSE");
    return 0;
}


当然,如果最后一个if路径错误,则什么也不会发生。
谁能解释截图中的代码如何起作用?

最佳答案

请注意,在屏幕截图中,将ismoving变量复制到wasmoving之后会进行更新,因此在评估条件时,ismoving的值很可能与wasmoving的值不同。

08-27 10:03