One of the most common programming habits in imperative programming is to assign a
variable one value, then assign it a different value; perhaps along the way we test
whether the variable has obtained certain key values. Constructs like the C examples
below are ubiquitous (other imperative languages are similar)