Хорошо, так как «приятно» играет C с использованием нескольких логических операторов в одном заявлении if
? Например, если я хочу сравнить две точки, чтобы увидеть, смежна ли одна с другой, будет ли она работать с if(X1 == X2 && Y1-- == Y2 || Y1++ == Y2 || Y1 == Y2 && X1-- == X2 || X1++ == X2)
или мне нужно разбить ее на 4 else if
заявления?несколько логических операторов в c
ответ
Вы можете абсолютно использовать то, как вы это делаете, до тех пор, как вы правильно используете ()
, чтобы определить, какие условия являются частью внешних паратенхов и какая часть внутренней. Например, если ваше условие верно, только если X1 == X2
и Y1-- == Y2 || Y1++ == Y2 || Y1 == Y2
и X1-- == X2 || X1++ == X2
. затем использовать parathenses должным образом, как это:
if((X1 == X2) && (Y1-- == Y2 || Y1++ == Y2 || Y1 == Y2) && (X1-- == X2 || X1++ == X2))
Это условие без скобок делает его очень сложным для понимания, и вы, вероятно, чтобы сделать ошибку.
Итак, тогда, если функции parens работают здесь, чтобы указать порядок, почему я получил ошибки в прошлом, когда использовал parens для указания OOS для арифметики, когда делаю назначение? – Phoxxent
Не связано с вашей проблемой, но изменение значений X и Y операторами '++' и '--', вероятно, не очень хорошая идея. Вместо написания, например. 'Y1 ++ == Y2' Я бы предпочел написать' Y1 + 1 == Y2' –