如何简化以下if-else-if梯形图,使函数调用只进行一次?
if (Condition A){
A();
}
else {
if (Condition B) {
A();
}
}
答案 0 :(得分:1)
将其更改为:
if ((Condition A) || (Condition B)) {
A();
}
如果A()
为Condition A
或true
为Condition B
,您希望功能true
运行,您可以使用||
(或)运营商。如果条件为true
,则会返回true
。
答案 1 :(得分:0)
不幸的是,总的来说,你不能简化这个" tree" ifs。如果他第二次(或下一次)病情有副作用。因此,总是很好地考虑为什么有人这样做了。
示例:
if(readbytefromUART() == 'b' || readbytefromUART() == 'c') .......
/* if condition ... == 'b' is met , there is no second call to the function
代码中常见的错误
if(readbytefromUART() == 'b' && readbytefromUART() == 'c') .......
/* if condition ... == 'b' is not met , there is no second call to the function
在另一个答案中提出的语法
if (cond1) || (cond2) {
在C中是非法的,它不会编译