我正在尝试用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
。
如果要循环直到bet1
为100,300
或500
:
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(&;(bet1<=299((||((bet1>=301(&;(bet1<=499((
while
循环中的条件始终为true
。您可以通过以下方式检查有效号码:
while (bet1 != 100 && bet1 != 300 && bet1 != 500)
{
cout << "Please place a valid bet" << endl;
cin >> bet1;
}