~~SLIDESHOW~~ ~~NOTOC~~ ====== Control Structures: Repetition in Algorithms ====== Mithat Konar\\ 2019-02-11 ===== Introduction ===== * Counter control * Sentinel/flag control * Input validation * Menus * Iterators ===== Counter-controlled repetition ===== * "Repeat something a known number of times." * Uses a counter variable. * Pseudocode:Set counter's initial value While counter has not yet exceeded the STOP_VALUE Do something Increment counter ===== Sentinel control ===== * **Sentinel**: * Value(s) that indicate(s) a special condition --- a "special value" ===== Sentinel-controlled repetition ===== * "Repeat as long as a sentinel condition is not matched." * Pseudocode:Get value While value is not SENTINEL value Do something Get value * Input validation might be considered a special case of sentinel controlled repetition. * **Flag**: * Sometimes used as a synonym for sentinel * Sometimes means a sentinel that is a Boolean value ===== Input validation ===== * "Prevent moving to next section until user has entered valid data." * Pseudocode:Get input value from user While input value is not valid Get input value from user ===== Menus ===== * Repeating menus can be implemented with sentinel control. * Pseudocode:Show menu Get menu choice from user While input value is not QUIT value Process the menu choice Show menu Get menu choice from user ===== Iterators ===== * Do something to every item in a collection. * Pseudocode:For each item in collection Do something with or to the item