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)