Also, the Arduino seems to have some weird logical rules,
No it does not, it is just plane C code
I've got "If" statements that seem to run all the time, regardless of the condition being tested.
My money is on the fact that you have ended the if statement with a colon.