relational operator an operator that expresses a relationship between two expressions boolean expression an expression that evaulates to either true or false boolean operator an operator that maps boolean operands to a boolean value logical operator boolean operator short-circuit evaluation halting the evaluation of a boolean expression as soon as the answer is known divide-by-zero error the error caused when an expression uses zero as the divisor arithmetic exception an exception caused by performing an illegal arithmetic operation defensive programming preemptively handling unexpected situations to avoid errors flag a variable that trakcs program settings or user preferences sequential execution execution of programs in sequence, from top to bottom of the main class control statement statement that alters the default sequential execution of a program selection statement a statement that executes one branch of a set of alternatives branching statement selection statement nested-if statement an if statement within the then or else block of another if statement dangling else problem a problem that occurs when the programmer forgets that the Java compiler ignores indentation and matches an else with the most recent unmatched if