For is a cycle operator that allows to specify the number of times when the same statements will be executed. In this way, similar to the loop function it allows to control the program execution. Each time when all statements in the body of the cycle are executed, is called the iteration. In this way, the cycle is one of the basic programming techniques that is used for all programs and automation in general.
The construction of a for cycle is the following:
for (initialization ; condition ; operation with the cycle variable) { //the body of the cycle }
Three parts of the for construction is the following:
The example of the for cycle:
for (int i = 0; i < 4; i = i + 1) { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }
On the initialization of the for cycle the variable i=0 is defined. The condition states that the for cycle will be executed while the value of variable i will be less than 4 (i<4). In the operation with the cycle variable it is increased by 1 each time when the cycle is repeated.
In this example above, the LED that is connected to the pin 13 of the Arduino board will turn on/off four times.
While cycle operator is similar to the for cycle operator that is described above, but it does not contain the cycle variable. Because of this, the while cycle allows to executed previously unknown number of iterations. The management of the cycle is realized using only condition that needs to be TRUE for next operation to execute.
The construction of the while cycle is the following:
while (condition that is TRUE) { //the body of the cycle }
That way the while cycle can be used as a good instrument for execution of a previously unpredictable program. For example, if it is necessary to wait until the signal from the pin 2 reaches the defined voltage level - 100, the following code can be used:
int inputVariable = analogRead(2); while (inputVariable < 100) { digitalWrite(13, HIGH); delay(10); digitalWrite(13, LOW); delay(10); inputVariable = analogRead(2); }
In the cycle the LED that is connected to the pin 13 of the Arduino board will be turned on/off while the signal will reach specified level.
Do while cycle works the same way like the while loop. The difference is that in the while cycle the condition is checked before entering the loop, but in the do while cycle the condition is checked after execution of the statements in the loop and then if the condition is TRUE the loop repeats. As the result, the statements inside the cycle will execute at least once, even if the test condition is FALSE.
The construction of a do while cycle is the following:
do { //the body of the cycle } while (condition that is TRUE);
If the same code is taken from the while loop example and used in the do while cycle, the difference is that the code will execute at least once, even if the inputVariable value is more than or equal to 100. The example code:
int inputVariable = analogRead(2); do { digitalWrite(13, HIGH); delay(10); digitalWrite(13, LOW); delay(10); inputVariable = analogRead(2); } while (inputVariable < 100);
Check yourself
1. What loop where the condition is checked after the loop body is executed?
2. How long will the operators in the body of the loop will operate (while (x < 100))?
3. What value will be for variable a after code executing
int a; for(a = 0; a < 10; a++) {}
4. Which of the following operators are not loop(s) in Arduino IDE?