go to previous page   go to home page   go to next page

Answer:

All three aspects of the loop

  1. Initializing the loop,
  2. testing the ending condition, and
  3. changing the value of what is being tested,

are done in one statement. This makes it easier to check if you have done things correctly.


Declaring the Loop Control Variable

Here is a counting loop:

int count;

. . . . . .

for ( count = 0;  count < 10; count++ ) 
  System.out.print( count + " " );

The loop control variable count has been declared somewhere in the program, possibly many statements away from the for statement. This violates the idea that all the parts of the loop are combined in one statement. It would be nice if the declaration of count were part of the for statement. In fact, this can be done, as in the following:

for ( int count = 0;  count < 10; count++ )
  System.out.print( count + " " );

In this example, the declaration of count and its initialization have been combined.

However, there is an important difference between this program fragment and the previous one:

Scope Rule: a variable declared in a for statement can only be used in that statement and the body of the loop.

The following is NOT correct:

for ( int count = 0;  count < 10; count++ )    
  System.out.print( count + " " );

// NOT part of the loop body
System.out.println( 
  "\nAfter the loop count is: " + count );  

Since the println() statement is not part of the loop body, count cannot be used here. The compiler will complain that it "cannot find the symbol: count" when it sees this count. This can be a baffling error message if you forget the scope rule.


QUESTION 2:

Is the following code fragment correct?

int sum = 0;
for ( int j = 0;  j < 8; j++ )
    sum = sum + j;

System.out.println( "The sum is: " + sum );