我有这个代码,它只是从另一个更大的代码的一部分。这看起来像是一个非常简单的错误,但我仍然无法弄清楚它是什么。我的问题是,'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)'。 –