我正在嘗試用 C 構建一個簡單的骰子游戲。我不明白為什么它沒有跳出 while 回圈。
您應該只能下注 100、300 或 500 歐元。
即使我輸入了應該正確的賭注“100-300-500”。它仍然回圈并說這是一個無效的賭注。為什么當我有時它沒有進展到 if 陳述句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;
}
uj5u.com熱心網友回復:
這個回圈
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;
}
uj5u.com熱心網友回復:
任何有限整數值可以是>=101或<=299。Oring more 條件不改變,條件總是true。
如果你想回圈直到bet1是100,300或500:
while ( bet1 != 100 && bet1 != 300 && bet1 != 500) {...
uj5u.com熱心網友回復:
想象一下:有人輸入 100。現在 while 回圈檢查:<=99?不。>>或者<<也許>=101?不。>>或<< <=299?這是!因此,條件為真并且要求有效投注。
看看你如何從這里解決它。
uj5u.com熱心網友回復:
這將永遠是正確的:(bet1 >= 101) || (bet1 <= 299)
數軸上的所有數字要么 >= 101 要么 <= 299
您需要使用邏輯 AND (&&) 運算子,例如 ((bet1 >= 101) && (bet1 <= 299)) || ((bet1 >= 301) && (bet1 <= 499))
uj5u.com熱心網友回復:
您在while回圈中的條件始終為true。您可以通過以下方式檢查有效號碼:
while (bet1 != 100 && bet1 != 300 && bet1 != 500)
{
cout << "Please place a valid bet" << endl;
cin >> bet1;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/359743.html
