This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
en:iot-open:programming_fundamentals_rtu:looping [2018/01/23 14:05] – Agrisnik | en:iot-open:programming_fundamentals_rtu:looping [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 2: | Line 2: | ||
===== For ===== | ===== For ===== | ||
- | //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 // | + | **//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 // |
The construction of a //for// cycle is the following: | The construction of a //for// cycle is the following: | ||
<code c> | <code c> | ||
for (initialization ; condition ; operation with the cycle variable) { | for (initialization ; condition ; operation with the cycle variable) { | ||
- | //The body of the cycle | + | //the body of the cycle |
} | } | ||
</ | </ | ||
+ | |||
+ | Three parts of the //for// construction is the following: | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | |||
+ | The example of the //for// cycle: | ||
+ | <code c> | ||
+ | for (int i = 0; i < 4; i = i + 1) | ||
+ | { | ||
+ | digitalWrite(13, | ||
+ | delay(1000); | ||
+ | digitalWrite(13, | ||
+ | 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 ===== | ||
+ | **// | ||
+ | |||
+ | The construction of the //while// cycle is the following: | ||
+ | <code c> | ||
+ | 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: | ||
+ | |||
+ | <code c> | ||
+ | int inputVariable = analogRead(2); | ||
+ | while (inputVariable < 100) | ||
+ | { | ||
+ | digitalWrite(13, | ||
+ | delay(10); | ||
+ | digitalWrite(13, | ||
+ | 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 ===== | ===== Do while ===== | ||
+ | //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: | ||
+ | <code c> | ||
+ | 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 // | ||
+ | <code c> | ||
+ | int inputVariable = analogRead(2); | ||
+ | do { | ||
+ | digitalWrite(13, | ||
+ | delay(10); | ||
+ | digitalWrite(13, | ||
+ | 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 <code C> 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 | ||