我有這個代碼,它只是從另一個更大的代碼的一部分。這看起來像是一個非常簡單的錯誤,但我仍然無法弄清楚它是什麼。我的問題是,'house1'的值不能退出while循環並轉到switch語句。例如,如果我輸入house1 = 0,程序將打印「無效值,請再次輸入」,但如果我在輸入無效值後輸入了house1 = 1,它也會打印「無效值,請重新輸入」。有誰知道我的錯誤是什麼?while循環在c + +不能退出
cin >> house1 ;
while ((0 <= house1) || (house1 >= 6))
{
cout << "Invalid value! please enter again:";
cin >> house1;
}
switch (house1)
{
case '1':
h1_p1 = h1_p1 - 5;
h2_p1 = h2_p1 + 1;
h3_p1 = h3_p1 + 1;
h4_p1 = h4_p1 + 1;
h5_p1 = h5_p1 + 1;
house_p1 = house_p1 + 1;
break;
case '2':
h2_p1 = h2_p1 - 5;
h3_p1 = h3_p1 + 1;
h4_p1 = h4_p1 + 1;
h5_p1 = h5_p1 + 1;
house_p1 = house_p1 + 2;
break;
'0 <= house1'我認爲這個是倒置的。因爲0 <= 1所以它會再次問你。 *還*案'1'和'案件1'不是同一件事。 while循環條件檢查整數值1,但您的case語句正在檢查*字符* 1的整數值。 – Borgleader
仔細閱讀'while'語句中的條件。當'house1'等於0時它會做什麼? (另外請注意,該陳述中兩個比較的括號是多餘的) –
我相信你想'(house1 <= 0)'而不是'(0 <= house1)'。 –