C++ do-While 循环不循环

标签 c++ visual-studio loops

这是我的 do-while 循环

do
{
    cout << "Enter the temperature tolerance for turning on the cooling" << endl
    << "1.50 <= ToleranceCoolOn <= 6.00 (degrees Celsius)" << endl
    << "and toleranceCoolOn > toleranceHeatOff" << endl;
    cin >> tempTolCoolOn;
} 
while ( !(tempTolCoolOn < tempTolerCoolOnMax && tempTolCoolOn > tempTolerCoolOnMin) && !(tempTolCoolOn > tempTolHeatOff));

想法是,当我键入大于 tempTolerCoolOnMax (6.0)、小于 tempTolerCoolOnMin (1.5) 和小于 tempTolHeatOff (2.0) 的数字时,它应该重复循环,直到我得到正确答案。但是,在输入 (6.0001) 后,它会跳过循环并进入下一个循环。关于为什么会发生这种情况的任何想法?

最佳答案

您在程序显示的提示中就有了您想要的规范 - 为什么不直接编写代码呢?

while (! (tempTolCoolOnMin <= tempTolCoolOn && tempTolCoolOn <= tempTolerCoolOnMax && tempTolCoolOn > tempTolHeatOff))

特别是,当您有逻辑/代数结构时,例如:

1.50 <= ToleranceCoolOn <= 6.00

我发现用 C++ 语法尽可能类似地编写表达式很有用:

1.50 <= ToleranceCoolOn && ToleranceCoolOn <= 6.00

顺便说一句——我不喜欢那些变量名;我发现它们很难彼此区分。

关于C++ do-While 循环不循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19750312/

相关文章:

c++ - 在销毁期间使用 std::shared_ptr 的 Segfault 可能是由于堆栈上的函数调用过多

c++ - 没有标题栏的简单窗口

C++:程序版本?

loops - for循环中的变量范围

python - 如何在 Python 中循环遍历两个字典

Matlab FOR 循环迭代时间增加

c++ - C++程序编译错误

mysql - 连接Mysql数据库和visual basic

c++ - 在 VS cmd 提示符下运行 .bat 文件

c++ - 调试 : Automatically check if (this==NULL)