Два кода, результаты разные
if a=1 && ( условия1 ) || a=0 && ( условия2 )
if ( a=1 && ( условия1 ) ) || ( a=0 && ( условия2 ) )
Результаты разные

они и не обязаны быть одинаковыми.
проставлять приоритетные скобки - признак хорошего стиля.
во-первых, код становится более читабельным, а во-вторых, не будет зависеть от капризов компилятора.
даже в уроке написано:
Оператор && имеет больший приоритет, чем ||, хотя это не подтверждено.