虽然循环没有中断?? C++
While loop not breaking?? 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;
}
任何有限整数值都是 >=101
或 <=299
。 oring更多的条件不变,条件总是true
.
如果你想循环直到 bet1
是 100,300
或 500
:
while ( bet1 != 100 && bet1 != 300 && bet1 != 500) {...
想象一下:
有人输入 100。现在 while 循环检查:<=99?不。 >>或者<<也许>=101?不。 >>或者<< <=299?这是!因此,条件为真,要求有效投注。
从这里了解如何解决这个问题。
您在 while
循环中的条件总是 true
。您可以通过以下方式查看有效号码:
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;
}
是任何有效输入值 100、300 或 500 的无限循环。
例如,如果用户将输入 100
,则至少此条件 (bet1 <= 299)
的计算结果为真。如果用户将输入 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;
}
这永远是真的:(bet1 >= 101) || (bet1 <= 299)
数轴上的所有数字要么 >= 101 要么 <= 299
您需要使用逻辑与 (&&) 运算符,例如 ((bet1 >= 101) && (bet1 <= 299)) || ((bet1 >= 301) && (bet1 <= 499))
我正在尝试用 C++ 构建一个简单的骰子游戏。我不明白为什么它没有跳出 while 循环。
您只能下注 100、300 或 500 欧元。
即使我输入的赌注“100-300-500”应该是正确的。它仍然循环并说这是一个无效的赌注。当我有 if ((bet1 == 100) || (bet1 ==300) || (bet1==500))
我试过将 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;
}
任何有限整数值都是 >=101
或 <=299
。 oring更多的条件不变,条件总是true
.
如果你想循环直到 bet1
是 100,300
或 500
:
while ( bet1 != 100 && bet1 != 300 && bet1 != 500) {...
想象一下: 有人输入 100。现在 while 循环检查:<=99?不。 >>或者<<也许>=101?不。 >>或者<< <=299?这是!因此,条件为真,要求有效投注。
从这里了解如何解决这个问题。
您在 while
循环中的条件总是 true
。您可以通过以下方式查看有效号码:
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;
}
是任何有效输入值 100、300 或 500 的无限循环。
例如,如果用户将输入 100
,则至少此条件 (bet1 <= 299)
的计算结果为真。如果用户将输入 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;
}
这永远是真的:(bet1 >= 101) || (bet1 <= 299)
数轴上的所有数字要么 >= 101 要么 <= 299
您需要使用逻辑与 (&&) 运算符,例如 ((bet1 >= 101) && (bet1 <= 299)) || ((bet1 >= 301) && (bet1 <= 499))