进行两次温度测量(temp_1
和temp_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)
它已编译但无效......
答案 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将无法工作。