我正在做家庭作业,并且在我的while循环语句中使用AND运算符时遇到了问题。以下是该问题的简化示例:
int main()
{
int a = 4;
int b = 0;
int c;
while (a <= 10 && b <= 10) {
cout << "a " << a << endl;
cout << "b " << b << endl << endl;
++a;
++b;
}
cout << "done" << endl;
return 0 ;
}
所以我希望while循环能够在a和b小于或等于10的情况下运行。但是,一旦a超过10,while循环就会结束,如下所示:
答案 0 :(得分:2)
如果a
高于10,那么检查b
是多余的,因为false && anything
是false
。但这就是你想要的:
所以我希望while循环能够运行,只要a和b都小于 或等于10
如果要在任何变量小于或等于10时进入循环,请改用||
。
详细了解Short-circuit evaluation以更好地理解这一点。
答案 1 :(得分:0)
while循环执行完全符合您的要求:
while循环运行,只要a和b小于或等于10
当第一个条件(a&lt; = 10)为假时,while循环退出 您可能想重新考虑您的计划的逻辑。
答案 2 :(得分:0)
只需改变你的状态
while (a <= 10 && b <= 10)
到
while (a <= 10 || b <= 10)
当OR
条件为假时,只有两个测试条件都为假。