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 | ||