The "While" Loop

A "While" Loop is used to repeat a specific block of code an unknown number of times, until a condition is met. For example, if we want to ask a user for a number between 1 and 10, we don't know how many times the user may enter a larger number, so we keep asking "while the number is not between 1 and 10". If we (or the computer) knows exactly how many times to execute a section of code (such as shuffling a deck of cards) we use a for loop.

The While Loop

The while loop is used to repeat a section of code an unknown number of times until a specific condition is met. For example, say we want to know how many times a given number can be divided by 2 before it is less than or equal to 1. If we know a specific number, such as 32, we can say 5 times, but for a given symbolic variable "NUMBER" which represents any number in the world, how many times is not known a priori (before hand). In this case, we could use a while loop to determine that answer:

The "pseudocode" for such an algorithm is: while the number is bigger than one keep dividing it by two. additionally, keep a count of how many times we do the division.

Pseudocode

            
                get our number
                set our initial count to 0
                while our number is greater than 1
                  divide the number by 2
                  increase our count by 1
                end
            
          

Matlab

            
                count = 0;
                while (number > 1)
                  number = number / 2; %  must "move" toward end of loop
                  count  = count + 1; 
                end
            
          

C, C++, or Java

            
                int count = 0;
                while (number > 1)
                {
                  number = number / 2;
                  count++; // the same as count = count + 1;
                }
            
          

Actionscript

            
                var count:int = 0;
                while (number > 1)
                {
                  number = number / 2;
                  count++; // the same as count = count + 1;
                }
            
          

Why While Loops?

  1. Like all loops, "while loops" execute blocks of code over and over again.

  2. The advantage to a while loop is that it will go (repeat) as often as necessary to accomplish its goal.

  3. Generic Syntax:

                
      while ( condition is true )
        do something
        % Note: the "something" should eventually result
        % in the condition being false
      end
                
              
  4. Infinite loops:

    If the action inside the loop does not modify the variables being tested in the loops condition, the loop will "run" forever. For example:

                
      while ( y < 10 )
        x = x + 1;
      end
                
              
                
      while (  true )
        printf('hello');
      end
                
              

Example 1: How to assure proper input

  1. Ask the user to input a value.
  2. while the input is incorrect.
  3. ask the user to input another value.
  4. go back to line 2 (the while)

Matlab

            
% MATLAB
%
% Using a while loop to ask the user to input a number
% between 1 and 10 (inclusive).
%
%   Variables:
%        value  : variable to store the input 
%

value = input ('Please Enter a Number between 1 and 10 (1-10)');

while ( value < 1 || value > 10)

  fprintf('Incorrect input, please try again.\n');
  value = input ('Enter a Number between 1 and 10 (1-10)');

end % while
            
          

C

            
/*
 * C
 * Using a while loop to ask the user to input a number
 * between 1 and 10 (inclusive).
 *
 *   Variables:
 *        value  : variable to store the input 
 */
printf("Please Enter a Number between 1 and 10 (1-10): ");
scanf("%d", &value);

while ( value < 1 || value > 10)
  {

    printf("Incorrect input, please try again.\n");
    printf("Enter a Number between 1 and 10 (1-10): ");
    scanf("%d", &value);

  }

            
          

Design Pattern:

A design pattern is the syntax that you have to memorize in order to do well in programming and on tests.

The design pattern for a while loop is:

Matlab

            
            while ( some condition is true )
              % Do this code 
              % Something here should modify the condition above 
            end
            
          

C, Java, or Actionscript

            
          while ( some condition is true )
            {
              // Do this code 
              // Something here should modify the condition above 
            }
            
          

Back to Topics List