当回路未断开时??C++



我正在尝试用C++构建一个简单的骰子游戏。我不明白为什么它没有突破while循环。

你应该只能下注100、300或500欧元。

即使我输入我的赌注";100-300-500〃;这应该是正确的。它仍然循环并说这是一个无效的赌注。当我有if ((bet1 == 100) || (bet1 ==300) || (bet1==500))时,为什么它不前进到if语句

我试着把if语句放在while循环之前,诸如此类。我不能让它工作。

cout << "Please place a bet. 100, 300, 500kr" << endl;
cin >> bet1;
while ((bet1 <= 99) || (bet1 >= 101) || (bet1 <= 299) || (bet1 >= 301) || (bet1 <= 499) || (bet1 >= 501)) {
cout << "Please place a valid bet" << endl;
cin >> bet1;
}
if ((bet1 == 100) || (bet1 ==300) || (bet1==500)) {
cout << "You have deposited " << " " << bet1 << "" << "And you now have: "<< saldo - bet1 << " " << "Remaining on your account." << endl;
}

此循环

while ((bet1 <= 99) || (bet1 >= 101) || (bet1 <= 299) || (bet1 >= 301) || (bet1 <= 499) || (bet1 >= 501)) {
cout << "Please place a valid bet" << endl;
cin >> bet1;
}

对于任何有效的输入值100、300或500是一个无限循环。

例如,如果用户将输入100,则至少该条件(bet1 <= 299)评估为true。如果用户将输入300,则至少该条件(bet1 >= 101)评估为真。如果用户将输入500,则至少该条件(bet1 >= 101)再次评估为真。

你应该重写while循环,例如

while ( bet1 != 100 && bet1 != 300 && bet1 != 500 )  {
cout << "Please place a valid bet" << endl;
cin >> bet1;
}

使用您编写循环的方法,条件可能看起来像

while ( ( bet1 <= 99 ) || ( bet1 >= 101 && bet1 <= 299 ) || (bet1 >= 301 && bet1 <= 499 ) || ( bet1 >= 501 ) ) {
cout << "Please place a valid bet" << endl;
cin >> bet1;
}

任何有限整数值都是>=101<=299。确定更多的条件不会改变条件始终为true

如果要循环直到bet1100,300500

while ( bet1 != 100 && bet1 != 300 && bet1 != 500) {...

想象一下:有人输入100。现在while循环检查:<99?否。>gt;或者<lt;可能>101?没有>gt;或者<lt<299?是的!因此,条件是真的,它要求一个有效的赌注

看看你如何从这里解决它。

这永远是真的:(bet1>=101(||(bet1<=299(

数字行上的所有数字都是>=101或<=299

您需要使用逻辑AND(&&(运算符,例如((bet1>=101(&amp;(bet1<=299((||((bet1>=301(&amp;(bet1<=499((

while循环中的条件始终为true。您可以通过以下方式检查有效号码:

while (bet1 != 100 && bet1 != 300 && bet1 != 500)
{
cout << "Please place a valid bet" << endl;
cin >> bet1;
}

相关内容

  • 没有找到相关文章

最新更新