title: Break out of a while loop that contains a switch statement
body: <p>I am having trouble figuring out how to break out of a loop that contains a switch statement.  Break breaks out of the switch, not the loop.</p>
  
  <p>There is probably a more elegant solution to this.  I have implemented a flag that starts out as true and gets set to false and ends the loop.  Can you offer a better solution?</p>
  
  <p>Background: this code is used in a bar code workflow system.  We have PocketPCs that have bar code scanners built in.  This code is used in one of those functions.  It prompts the user for different pieces of data throughout the routine.  This piece allows them to scroll through some inventory records displaying that info on the PocketPC terminal (paged results) and allows them to enter "D" for Done, "Q" to quit.</p>
  
  <p>Here is the current C# example that needs to be improved:</p>
  
  <pre><code>do
  {
      switch (MLTWatcherTCPIP.Get().ToUpper())
      {
          case "": //scroll/display next inventory location
              MLTWatcherTCPIP.TerminalPrompt.ScrollBodyTextDown();
              break;
          case "P": //scroll/display previous inventory location
              MLTWatcherTCPIP.TerminalPrompt.ScrollBodyTextDown();
              break;
          case "D": //DONE (exit out of this Do Loop)
              // break; // this breaks out of the switch, not the loop
              // return; // this exists entire method; not what I'm after
              keepOnLooping = false;
              break;
          case "Q": //QUIT (exit out to main menu)
              return;
          default:
              break;
      }
  } while (keepOnLooping);
  </code></pre>
  
  <p>Here is an example of code that does this in VB.NET</p>
  
  <pre><code>Do
      Select Case MLTWatcherTCPIP.Get().ToUpper
          Case "" ''#scroll/display next inventory location
              MLTWatcherTCPIP.TerminalPrompt.ScrollBodyTextDown()
          Case "P" ''#scroll/display previous inventory location
              MLTWatcherTCPIP.TerminalPrompt.ScrollBodyTextUp()
          Case "D" ''#DONE (exit out of this Do Loop)
              Exit Do
          Case "Q" ''#QUIT (exit out to main menu)
              Return
      End Select
  Loop
  </code></pre>
  
  <p>Thanks,</p>