#include <cstdlib>
#include <ctime>
#include <iostream>
int main()
{
bool newgame;
std::cout << " Ready to waste more family money gambling? y/n ";
std::cin >> newgame;
if (newgame = "n")
{
newgame = false;
return(123);
}
else if (newgame = "y")
{
srand(time(NULL));
int number = rand() % 10;
int guess;
std::cout << "Pick your number ";
std::cin >> guess;
if (guess == number)
{
std::cout << "Winner!";
}
else
{
std::cout << "Loser!";
}
}
}
我不明白我在这里做错了什么,所有发生的事情都是在输入“y”或“n”后命令提示符关闭。 我已经尝试了所有的东西,从改变循环类型,甚至重新排列代码,但我尝试的一切都没有用。
答案 0 :(得分:3)
bool
只能保存值0或1(true或false)。尝试将newgame
更改为char
。此外,您还使用了分配(=
)而不是相等(==
)。
另外,如果您正在尝试循环(我认为您在问题中暗示了这一点),那么您希望在do...while
循环中包装变量声明之外的所有内容。
答案 1 :(得分:3)
问题是==是等于的运算符,而不是=用于赋值的运算符。发生的事情就是这部分,
if (newgame = "n")
{ newgame = false;
return(123);
}
正在执行和退出123.布尔人不存储&#34;是&#34;和&#34;不&#34;值,它们存储1表示true,0表示false表示。
答案 2 :(得分:1)
看起来不太近但我看到很多,如果blah =某事,我认为你有可能想使用==而不是=,=在if语句中做一个赋值==做一个比较