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 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.
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
count = 0;
while (number > 1)
number = number / 2; % must "move" toward end of loop
count = count + 1;
end
int count = 0;
while (number > 1)
{
number = number / 2;
count++; // the same as count = count + 1;
}
var count:int = 0;
while (number > 1)
{
number = number / 2;
count++; // the same as count = count + 1;
}
Like all loops, "while loops" execute blocks of code over and over again.
The advantage to a while loop is that it will go (repeat) as often as necessary to accomplish its goal.
Generic Syntax:
while ( condition is true )
do something
% Note: the "something" should eventually result
% in the condition being false
end
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
% 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
* 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);
}
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:
while ( some condition is true )
% Do this code
% Something here should modify the condition above
end
while ( some condition is true )
{
// Do this code
// Something here should modify the condition above
}