&& is Conditional-AND; false when left operand (

*talking*) is false, otherwise evaluate the second operand

|| is Conditional-OR; true when the left operand (

*hour < 7*) is true, otherwise evaluate the second operand (

*hour > 20*)

Without the parentheses,

*talking && hour < 7 || hour > 20*would evaluate as

*((talking && hour < 7) || hour > 20)*