这是我做的功能:
void loading(bool wsound) {
if (wsound = true)
{
PlaySound(TEXT("sounds/intro.wav"), NULL, SND_ASYNC);
cout << "..........";
Sleep(1000);
cout << "..........";
Sleep(1000);
cout << "..........";
Sleep(1000);
cout << "..........";
Sleep(1000);
cout << "..........";
Sleep(1000);
cout << ".........." << endl;
Sleep(1000);
}
else if (wsound = false)
{
cout << "..........";
Sleep(1000);
cout << "..........";
Sleep(1000);
cout << ".........." << endl;
}
else {
cout << "An error occured" << endl;
cin.get();
system("exit");
}
}
所以这基本上做的是,如果值为true则需要bool然后如果为false则加载声音然后加载它而没有声音。
我的问题是,在主要我放置了一个值为true的bool,然后它再次调用它后,值类型为false,它仍然用声音加载它。
代码是这样的:
//a bunch of code here
loading(true);
//a bunch of code here
loading(false);
//and more codes.........
答案 0 :(得分:3)
这不是支票,这是一项作业:wsound = true
您应该使用wsound == true
之类的内容,但在if
语句中,仅使用if (wsound)
就足够了,if (wsound == true)
等于false
。对于if(!wsound)
检查,您可以使用:if(wsound = true)
。
编辑:要了解会发生什么:
operator=()
是一个正确的语句,因为在此if语句中使用的赋值{{1}}在大多数情况下应该返回对该变量的非成本引用,该变量已经解释为here。