| I l@ve RuBoard |
|
6.5 while StatementThe while statement is used when the program needs to perform repetitive tasks. The general form of a while statement is: while (condition)
statement;
The program repeatedly executes the statement inside the while until the condition becomes false (0). (If the condition is initially false, the statement will not be executed.) For example, Example 6-2 computes all the Fibonacci numbers that are less than 100. The Fibonacci sequence is: 1 1 2 3 5 8 . . . The terms are computed from the equations:
etc. In general, the Fibonacci sequence is defined as: fn = fn - 1 + fn - 2 This is a mathematical equation using math-style variable names (fn). Mathematicians use this very terse style of naming variables, but in programming, terse is dangerous, so we translate these names into something verbose for C++:
So in C++ code, the equation is expressed as: next_number = current_number + old_number; We want to loop until our current term is 100 or larger. The following while loop will repeat our computation until we reach this limit.: while (current_number < 100) In our while loop we compute the value of current_number. Next we need to advance one term. This completes the body of the loop. The first two terms of the Fibonacci sequence are 1 and 1. We initialize our first two terms to these values. Figure 6-1 shows what happens to the variables during the execution of the program. Figure 6-1. Fibonacci execution![]() At the beginning, current_number and old_number are 1. We print the value of the current term. Then the variable next_number is computed (value 2). Next we advance one term by putting current_number into old_number and putting next_number into current_number. This is repeated until we compute the last term and the while loop exits. Example 6-1 shows our algorithm written as C++ code. Example 6-1. fib/fib.cpp#include <iostream>
int old_number; // previous Fibonacci number
int current_number; // current Fibonacci number
int next_number; // next number in the series
int main( )
{
// start things out
old_number = 1;
current_number = 1;
std::cout << "1\n"; // Print first number
while (current_number < 100) {
std::cout << current_number << '\n';
next_number = current_number + old_number;
old_number = current_number;
current_number = next_number;
}
return (0);
}
|
| I l@ve RuBoard |
|