while 循环不会以多个异常结束
While loop wont end with more than one exception
我可能缺少一些非常基本的东西,但我已经搜索过,没有找到类似的东西。当变量 num1 达到 10 时,程序应该结束,但它也等待 num2 达到 10。我很确定我正确使用了 or 运算符。
#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);
}
你的 while 语句说,"只要 num1 或 num2 小于或等于 10,就继续"。 该语句是一个布尔表达式"继续前进,而这是真的"。 如果替换 ||(或)与&&(和)一起,然后你会说在两个变量都小于或等于十时继续。
F or F = F F or T = T T or F = T T or T = T
因此,在您的情况下,当 num1 大于 10 时,即使第一次比较也是假的,第二次比较使整个表达式为真
使用 &
& 运算符代替 || 运算符。
&&是布尔"and"运算符,它将提供您想要的功能。
不难;人类的大脑不能很好地处理它。
您希望在以下情况下停止循环
num1 > 10 || num2 > 10
但是,在一段时间循环中,您必须说循环何时应该继续 - 这不是(循环应该停止)。
现在!(a || b) == !a && !b. (这是定律 - 德摩根定律。
所以你想要
while (!(num1 > 10 || num2 > 10))
这是
while (!(num1 > 10) && !(num2 > 10))
这是
while (num1 <= 10 && num2 <= 10)
相关文章:
- 处理多个异常集合的C++方法
- 我在c++代码中生成了一个运行时#3异常
- 孤立代码块在结构中引发异常
- C++中的赋值发生,尽管右侧出现异常
- 为什么在这个代码结束循环中没有得到结束
- 从构造函数抛出异常时如何克服内存泄漏
- 异常属于C++中的线程还是进程
- 当类定义不可见时捕获异常
- 试图对缓存进行跨步测试,但程序并没有结束
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- 为什么异常不退出程序?
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 获取指向派生类的指针在 C++ 中以运行时异常结束
- 引发异常并直接结束程序的自定义异常处理
- 私有成员"current"的值在成员函数结束时发生异常更改
- 提升asio read_u直到文件的异常结束
- 加密++异常调用消息结束
- while 循环不会以多个异常结束
- 异常处理:但不要在catch块中结束