Выражение
a==1,b==1,c==1,d==1,e==1,f==1,g==1,h==1,i==1,j==1
выполняет все сравнения, но из-за того, как работает оператор запятая , возвращает только результат last , который вэтот случай j == 1
.Все остальные результаты отбрасываются и игнорируются.
Таким образом, ваше условие практически
if (j == 1)
Если вы хотите связать несколько условий, вам нужно использовать логические операторы AND &&
или OR||
.Как и в
if (a==1 && b==1 && c==1 && d==1 && e==1 && f==1 && g==1 && h==1 && i==1 && j==1)
Теперь условие будет истинным, только если all части верны.
Это должно быть почти во всех книгах, учебных пособиях или классах.Если вы пропустили это, пожалуйста, вернитесь к ним, чтобы узнать больше.
На другой ноте, когда вы делаете
if (a==1) {PORTAbits.RA2 = 1;}
if (a==0) {PORTAbits.RA2 = 0;}
, это действительно равно
PORTAbits.RA2 = a;