使用||改善条件组合

时间:2017-09-09 13:30:51

标签: while-loop arduino

进行两次温度测量(temp_1temp_2)。温度不得为85-127

为了保持运行,while条件必须满足4个条件之一。我的工作方法:

while (temp_1 == 85 || temp_1 == -127 || temp_2 == 85 || temp_2 == -127){
  // keep the while loop running
}

如何缩短/改善条件?我一直在尝试这样的事情:

while (temp_1 == 85,- 127 || temp_2 == 85,-127)

它已编译但无效......

2 个答案:

答案 0 :(得分:2)

您始终可以定义方法或宏:

bool is_temperature_invalid(int temp) {
    return (temp == 85 || temp == -127);
}

然后使用类似

的内容
while (is_temperature_invalid(temp_1) || is_temperature_invalid(temp_2))

答案 1 :(得分:1)

在第一个答案之后,您可以将整个条件添加到函数中:

// helper function for temperature validation
bool TempsValid (int temp_a, int temp_b){
    return temp_a == 85 || temp_a == -127 || temp_b == 85 || temp_b == -127;
}

宏将如下:

#define TempsValid (temp_1 == 85 || temp_1 == -127 || temp_2 == 85 || temp_2 == -127)

宏的好处可能是没有函数调用。速度/存储 - 如果性能问题,则使用。

** #define

上的警告

您也可以创建用于评估函数的宏,例如函数。如果更改了变量的名称,则#define将无法工作。