Adding More Expressions into for
The C language allows you to put more expressions into the three expression fields in the for statement. Expressions in a single expression field are separated by commas.
For instance, the following form is valid in C:
for (i=0, j=10; i<10, j>0; i++, j--){
/* statement block */
}
Here, in the first expression field, the two integer variables, i and j, are initialized, respectively, with 0 and 10 when the for statement is first encountered. Then, in the second field, the two relational expressions, i<10 and j>0, are evaluated and tested. If one of the relational expressions returns 0, the looping is stopped. After each iteration and the statements in the statement block are executed successfully, i is increased by 1, j is reduced by 1 in the third expression field, and the expressions i<10 and j>0 are evaluated to determine whether to do one more looping.
Now, let's look at a real program. Listing 7.2 shows an example of using multiple expressions in the for statement.
TYPE
Listing 7.2. Adding multiple expressions to the for statement.
1: /* 07L02.c: Multiple expressions */
2: #include <stdio.h>
3:
4: main()
5: {
6: int i, j;
7:
8: for (i=0, j=8; i<8; i++, j--)
9: printf("%d + %d = %d\n", i, j, i+j);
10: return 0;
11: }
OUTPUT
I get the following output displayed on the screen after running the executable, 07L02.exe:
C:\app> 07L02
0 + 8 = 8
1 + 7 = 8
2 + 6 = 8
3 + 5 = 8
4 + 4 = 8
5 + 3 = 8
6 + 2 = 8
7 + 1 = 8
C:\app>
ANALYSIS
In Listing 7.2, line 6 declares two integer variables, i and j, which are used in a for loop.
In line 8, i is initialized with 0 and j is set to 8 in the first expression field of the for statement. The second expression field contains a condition, i<8, which tells the computer to keep looping as long as the value of i is less than 8.
Each time, after the statement controlled by for in line 8 is executed, the third expression field is evaluated, and i is increased by 1 while j is reduced by 1. Because there is only one statement inside the for loop, no braces ({ and }) are used to form a statement block.
The statement in line 9 displays the addition of i and j on the screen during the looping, which outputs eight results during the looping by adding the values of the two variables, i and j.
Adding multiple expressions into the for statement is a very convenient way to manipulate more than one variable in a loop. To learn more about using multiple expressions in a for loop, look at the example in Listing 7.3.
TYPE
Listing 7.3. Another example of using multiple expressions in the for statement.
1: /* 07L03.c: Another example of multiple expressions */
2: #include <stdio.h>
3:
4: main()
5: {
6: int i, j;
7:
8: for (i=0, j=1; i<8; i++, j++)
9: printf("%d - %d = %d\n", j, i, j - i);
10: return 0;
11: }
The following output is displayed on the screen after the executable 07L03.exe is run on my machine:
C:\app> 07L03
1 - 0 = 1
2 - 1 = 1
3 - 2 = 1
4 - 3 = 1
5 - 4 = 1
6 - 5 = 1
7 - 6 = 1
8 - 7 = 1
C:\app>
OUTPUT
In Listing 7.3, two integer variables, i and j, are declared in line 6.
ANALYSIS
Note that in line 8, there are two assignment expressions, i=0 and j=1, in the first expression field of the for statement. These two assignment expressions initialize the i and j integer variables, respectively.
There is one relational expression, i<8, in the second field, which is the condition that has to be met before the looping can be carried out. Because i starts at 0 and is incremented by 1 after each loop, there are a total of eight loops that will be performed by the for statement.
The third expression field contains two expressions, i++ and j++, that increase the two integer variables by 1 each time after the statement in line 9 is executed.
The printf() function in line 9 displays the subtraction of the two integer variables, j and i, within the for loop. Because there is only one statement in the statement block, the braces ({ and }) are discarded.
- 3 views