x = 100; if( false && (x=50) > 100 ) return 0; return x; // --------------------------// x = 100; if( true || (x=50) < 0 ) return x; return 0; the right part of "&&" "||" are still evaluated