This expression:
a =! param
assigns the value !param
to a
. !param
is negated version of param evaluated in boolean context.
Assignment operators return the value of the right hand side, so, if (a = !param)
also executes the if
body, if !param
is true.