c中的多个逻辑运算符

时间:2014-10-13 14:46:28

标签: c comparison logical-operators

好吧,那么C在一个if语句中使用多个逻辑运算符有多么“好”?例如,如果我想比较两个点,看一个是否与另一个点相邻,是否可以使用if(X1 == X2 && Y1-- == Y2 || Y1++ == Y2 || Y1 == Y2 && X1-- == X2 || X1++ == X2),还是需要将其分解为4个else if语句?

1 个答案:

答案 0 :(得分:4)

只要正确使用()来确定哪些条件是外部参数的一部分以及哪一个是内部的一部分,您就可以绝对使用您的工作方式。例如,假设您的条件仅在X1 == X2Y1-- == Y2 || Y1++ == Y2 || Y1 == Y2以及X1-- == X2 || X1++ == X2时为真。然后正确使用parathenses,如下:

if( (X1 == X2) && (Y1-- == Y2 || Y1++ == Y2 || Y1 == Y2) && (X1-- == X2 || X1++ == X2) )

这种没有括号的情况使得理解起来非常复杂,并且您可能会犯错误。