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 |
![]() ![]() |