title: Help with do/while and switch statements in C
body: <p>Trying to compile a simple switch statement with 5 choices. 1-4 produce calculations and output while #5 exits the program. I made a do/while loop so if choice 5 is entered the program will end. I get an error: </p>
  
  <pre><code>4_19.c: In function ‘main’:
  4_19.c:95: error: ‘choice’ undeclared (first use in this function)
  4_19.c:95: error: (Each undeclared identifier is reported only once
  4_19.c:95: error: for each function it appears in.)
  </code></pre>
  
  <p>I don't know why it is saying its undeclared, because I declared it in the beginning. What did I do wrong? Thanx. Here is my code:</p>
  
  <pre><code>    /* C++ book. 4_19 The speed of sound in gases. 
  Create a menu to choose between 4 gases. User then enters number of seconds
  it took to travel to destination. The program will calculate how far the source was (from speed that is unique to gas density). Validate input of seconds from 0 to 30 seconds only. 
  */
  
  #include &lt;stdio.h&gt;
  int main(void)
  {
      do
      {
          // Declare variables
          int choice;
          float speed, seconds = 0, distance;
  
          //Display program details and menu choice
          printf("\n");
          printf("Choose a gas that you would like to analyze.\n");
          printf("Medium                              Speed(m/s)\n");
          printf("1.Carbon Dioxide                    258.0\n");
          printf("2.Air                               331.5\n");
          printf("3.Helium                            972.0\n");
          printf("4.Hydrogen                          1270.0\n");
          printf("5.Quit Program");
          printf("Enter a choice 1-5: ");
          scanf("%i",&amp;choice);
          while (choice &lt; 1 || choice &gt; 5)        // Validate choice input. 
          {   
              printf("You entered an invalid number. Choose 1,2,3, or 4 only.\n");
              printf("Enter a choice 1-5: ");
              scanf("%i",&amp;choice);
          }
  
          // Switch statements to execute different choices
          switch(choice)
          {
              case 1:     // Carbon Dioxide
                  printf("Enter number of seconds, from 0 to 30, that the sound traveled in carbon dioxide: ");
                  scanf("%f", &amp;seconds);
                  while (seconds &lt; 0 || seconds &gt; 30)      // Validate time entered
                  {
                      printf("The range of input for seconds is only from 0 to 30 seconds.\n");
                      printf("Please enter a valid number for number of seconds: ");
                      scanf("%f", &amp;seconds);
                  }
                  speed = 258.0;
                  distance = speed * seconds;
                  printf("The distance from the source of the sound is %.2f meters in carbon dioxide.\n", distance);
                  break;
  
              case 2:     // Air
                  printf("Enter number of seconds, from 0 to 30, that the sound traveled in air: ");
                  scanf("%f", &amp;seconds);
                  while (seconds &lt; 0 || seconds &gt; 30)      // Validate time entered
                  {
                      printf("The range of input for seconds is only from 0 to 30 seconds.\n");
                      printf("Please enter a valid number for number of seconds: ");
                      scanf("%f", &amp;seconds);
                  }
                  speed = 331.5;
                  distance = speed * seconds;
                  printf("The distance from the source of the sound is %.2f meters in air.\n", distance);
                  break;
  
              case 3:     // Helium
                  printf("Enter number of seconds, from 0 to 30, that the sound traveled in helium: ");
                  scanf("%f", &amp;seconds);
                  while (seconds &lt; 0 || seconds &gt; 30)      // Validate time entered
                  {
                      printf("The range of input for seconds is only from 0 to 30 seconds.\n");
                      printf("Please enter a valid number for number of seconds: ");
                      scanf("%f", &amp;seconds);
                  }
                  speed = 972.0;
                  distance = speed * seconds;
                  printf("The distance from the source of the sound is %.2f meters in helium.\n", distance);
                  break;
  
              case 4:     // Hydrogen
                  printf("Enter number of seconds, from 0 to 30, that the sound traveled in hydrogen: ");
                  scanf("%f", &amp;seconds);
                  while (seconds &lt; 0 || seconds &gt; 30)      // Validate time entered
                  {
                      printf("The range of input for seconds is only from 0 to 30 seconds.\n");
                      printf("Please enter a valid number for number of seconds: ");
                      scanf("%f", &amp;seconds);
                  }
                  speed = 1270.0;
                  distance = speed * seconds;
                  printf("The distance from the source of the sound is %.2f meters in hydrogen.\n", distance);
                  break;
  
              case 5:
                  printf("End of Program\n");
                  break;
          }
      } while (choice != 5);
  
      return 0;
  }
  </code></pre>