Table of Contents

Looping

for

for is a cycle operator that allows specifying 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:

  • initialisation section usually initialises the value of the variable that will be used to iterate the cycle; this value can be 0 or any other value;
  • condition allows managing the number of cycle iterations; the statements in the body of the cycle are executed when the condition is TRUE;
  • operations with the cycle variable allows defining the number of cycle iterations.

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

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 realised using only condition that needs to be TRUE for the 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 the execution of a previously unpredictable program. For example, if it is necessary to wait until the signal from 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 the specified level.

do...while

The 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 a 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 is a kind of the loop, where the condition is checked after the loop body is executed?

2. How long will the operators in the body of the loop 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?

  • do…while,
  • while,
  • repeat until,
  • for.
en/iot-open/getting_familiar_with_your_hardware_rtu_itmo_sut/arduino_and_arduino_101_intel_curie/programming_fundamentals_rtu/looping.txt · Last modified: 2020/07/20 09:00 by 127.0.0.1
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0