这是我的 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/