if-then statements

  • Is the nominal path through the code clear?
  • Do if-then tests branch correctly on equality?
  • Is the else clause present or documented?
  • Is the else clause correct?
  • Are the if and else clauses used correctly, not reversed?
  • Does the normal case follow the if rather than the else?

if-then-else-if chains

  • Are complicated tests encapsulated in boolean function calls?
  • Are the most common cases tested first?
  • Are all cases covered?
  • Is the if-then-else-if chain the best implementation—better than a case statement?

case statements

  • Are cases ordered meaningfully?
  • Are the actions for each case simple—calling other routines if necessary?
  • Does the case test a real variable, not a phoney one that's made up solely to use and abuse the case statement?
  • Is the use of the default clause legitimate?
  • Is the default clause used to detect and report unexpected cases?
  • In C, does the end of each case have a break?