It is essential to understand that if no statements change the normal program flow, the microcontroller executes instructions one by one in the order they appear in the source code (from the top - to the down direction). Control statements modify normal program flow by skipping or repeating parts of the code. Often, to decide if the part of the code should be executed or to choose one of the number of possible execution paths, conditional statements are used. For repeating the part of the code, loop statements can be used.
if is a statement that checks the condition and executes the following statement if the condition is TRUE. There are multiple ways to write down the if statement:
//1st example if (condition) statement; //2nd example if (condition) statement; //3rd example if (condition) { statement; } //4th example if (condition) { statement; }
The version with curly braces is used when there is a need to execute part of the code that consists of more than a single statement. Many statements taken together with a pair of curly braces are treated as a single statement in such cases. When both TRUE and FALSE cases of the condition should be viewed, the else part should be added to the if statement in the following ways:
if (condition) { statement1; //Executes when the condition is true } else { statement2; //Executes when the condition is false }
If more conditions should be viewed, the else if part is added to the if statement:
if (condition1) { statement1; //Executes when the condition1 is true } else if (condition2) { statement2; //Executes when the condition2 is true } else { statement3; //Executes in all other cases }
For example, when the x variable is compared and when it is higher than 10, the digitalWrite() method executes.
if (x>10) { //Statement is executed if the x > 10 expression is true digitalWrite(LEDpin, HIGH) }
To allow checking different conditions, logical operators are widely used with the condition statement if described above.
Comparison Operators
There are multiple comparison operators used for comparing variables and values. All of these operators compare the variable's value on the left to the value on the right. Comparison operators are the following:
Examples:
if (x==y){ //Equal //Statement } if (x!=y){ //Not equal //Statement } if (x<y){ //Less than //Statement } if (x<=y){ //Less than or equal //statement } if (x>y){ //Greater than //Statement } if (x>=y){ //Greater than or equal //Statement }
Boolean Operators
The Boolean logical operators in C/C++ are the following:
Examples:
//Logical NOT if (!a) { //The statement inside if will execute when the a is FALSE b = !a; //The reverse logical value of a is assigned to the variable b } //Logical AND //The statement inside if will execute when the //Values both of the a and b are TRUE if (a && b){ //Statement } //Logical OR //The statement inside if will execute when at least one of the //a and b values are TRUE if (a || b){ //Statement }
A switch statement similar to the if statement controls the flow of a program. The code inside switch is executed in various conditions. A switch statement compares the values of a variable to the specified values in the case statements. Allowed data types of the variable are int and char. The break keyword exits the switch statement.
Examples:
switch (x) { case 0: //Executes when the value of x is 0 // statements break; //Goes out of the switch statement case 1: //Executes when the value of x is 1 // statements break; //Goes out of the switch statement default: //Executes when none of the cases above is true // statements break; //Goes out of the switch statement }