我有一个代码可以不断读取温度值,温度值总是负值。如何在C#中写入If条件以检查此温度是否在-44和-46范围内。
我尝试使用以下代码,但条件仍然传递
if (!Enumerable.Range(-44, 1).Contains(cameraTemp)
|| !Enumerable.Range(-45, 1).Contains(cameraTemp)
|| !Enumerable.Range(-46, 1).Contains(cameraTemp))
我也尝试使用下面的代码,但是一些条件如何传递
if (!(cameraTemp >= -44 && cameraTemp <= -46))
虽然我的温度值是-45,但条件仍然存在。
答案 0 :(得分:3)
如果范围是-44到-46,您应该尝试以下。
if (!(cameraTemp <= -44 && cameraTemp >= -46))
当我们落到0到-1这样的负数时。 0大于-1。同样的方式-1大于-2。所以它有点逆序。
如果你对此感到困惑,那么你必须将值转换为绝对值,然后应用条件。
详细说明。
以下条件
1. if (!(cameraTemp <= -44 && cameraTemp >= -46))
{
// Some print or logic
}
If you write condition above way then your logic only execute if temperature value is not between -44 to -46 including -44 and -46.
2. if ((cameraTemp <= -44 && cameraTemp >= -46))
{
// Some print or logic
}
If you write this way then it only execute for value -44 , -45 and -46.
答案 1 :(得分:1)
或者,如果您想将范围-44
输入-46
,则应尝试关注:
if (cameraTemp >= -46 && cameraTemp <= -44)
答案 2 :(得分:0)
您已将操作员倒置以检查温度
if (!(cameraTemp <= -44 && cameraTemp >= -46))
-45
低于-44
且优于-46
: - )
答案 3 :(得分:0)
你正在混合你的大粮食和更少的粮食。在你的第二次尝试中,你不能同时小于-46(例如那将是-47,-48等)并且大于-44(例如-43,-42等)
if (!(cameraTemp <= -44 && cameraTemp >= -46))
答案 4 :(得分:0)
-46小于-44所以你必须扭转你的状况。
if (!(cameraTemp <= -44 && cameraTemp >= -46))