我正在写一个掷骰子计划作为学校作业。在这段代码中,无论骰子是什么,程序跳过所有的"if“块,并继续通过这个片段中的最后一行。随机数生成器只被设置为生成数字1-12,因此每个返回都在该范围内。
int diceRoll = ThrowDice();
if (diceRoll == '7' || diceRoll == '11')
{
cout << "\nCongratulations! You won!!";
didWin = true;
UpdateBalance(didWin, bet);
}
else if (diceRoll == '2' || diceRoll == '3' || diceRoll == '12')
{
cout << "\nYou lose!";
didWin = false;
UpdateBalance(didWin, bet);
}
else if (diceRoll == '1' || diceRoll == '4' || diceRoll == '5' || diceRoll == '6' || diceRoll == '8' || diceRoll == '9' || diceRoll == '10')
{
int diceRollPoint = PlayPointRound(diceRoll);
if (diceRollPoint == '7')
{
cout << "\n\nSorry, you lose!";
didWin = false;
UpdateBalance(didWin, bet);
}
else if (diceRollPoint == diceRoll)
{
cout << "\n\nYou won!!!";
didWin = true;
UpdateBalance(didWin, bet);
}
}
发布于 2018-10-21 16:40:59
编写'7'
意味着与编写7
不同。
前者是一个charcter文字,它被理解为与该字符对应的整数代码,另一个仅仅是整数7。
发布于 2018-10-21 16:40:01
您的骰子卷表示为int
,但您正在将它们与char
文本进行比较。您应该通过删除引号来使用int
文本。例如:
int diceRoll = ThrowDice();
if (diceRoll == 7 || diceRoll == 11) {
// Here ----^----------------^
https://stackoverflow.com/questions/52917553
复制相似问题