我可能遗漏了一些非常基本的东西,但我已经搜索过,并且找不到类似的东西。程序应该在变量num1变为10时结束,但是等待num2也变为10。我非常确定我正确使用或运营商。
#include <iostream>
using namespace std;
int main(){
int num1 = 5;
int num2 = 0;
int counter = 0;
do{
counter++;
num1++;
num2++;
cout << counter << " " << num1 << " " << num2 << endl;
} while (num1 <= 10 || num2 <= 10);
}
答案 0 :(得分:4)
F or F = F F or T = T T or F = T T or T = T
所以在你的情况下,当num1大于10时,第一次比较是假的,第二次比较使得整个表达式为真
答案 1 :(得分:4)
你的while语句说,“只要num1或num2小于或等于10,就继续”。该语句是一个布尔表达式“在这是真的时继续前进”。如果你替换|| (或)与&amp;&amp; (并且)当两个变量都小于或等于10时,你会说要继续。
答案 2 :(得分:3)
使用&amp;&amp;运算符代替||操作
&安培;&安培;是布尔“和”运算符,它将提供您想要的功能。
答案 3 :(得分:2)
不难;人类的大脑并没有很好地处理它。
你想在
时停止循环num1 > 10 || num2 > 10
然而,在while循环中你必须说循环何时应该继续 - 这不是(循环应该停止)。
现在!(a || b)==!a&amp;&amp; !湾(这是法律 - 摩根法律。)
所以你想要
while (!(num1 > 10 || num2 > 10))
哪个是
while (!(num1 > 10) && !(num2 > 10))
哪个是
while (num1 <= 10 && num2 <= 10)