If >>> if( check_boundaries -> a.length <= max_int ) >>> process(a); is equal to > if( check_boundaries ) > if( a.length <= max_int ) > process(a); than it is also equal to if( check_boundaries && a.length <= max_int ) process(a); and *not* equal to >>> if( !check_boundaries || a.length <= max_int ) >>> process(a); Did I miss something?