Your first equivalence operator is incorrect, at least in C ++. it
if(A||B){X;} if(C&&D){X;} if(F!=G&&H+I==J){X;}
can execute X more than once if more than one condition is met. In addition, the above is guaranteed to evaluate at least A , C , F and G Meanwhile it
if((A||B) || (C&&D) || (F!=G&&H+I===J)){X;}
guaranteed to execute X only once, and guaranteed to evaluate at least A
source share