这是我的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
顺便说一句-我不喜欢那些变量名;我发现它们很难区分。