More Decisions with if... else if

Maybe you only need a message when a is greater than b.  If that’s the case, you could cut out the else statement and its code block.  So, all your setup function would have is the one if statement, like this:

void setup()
{
  Serial.begin(9600);

  int a = 89;
  int b = 42;

  if(a > b)
  {
    Serial.print("a is greater than b");
  }
}

Maybe your sketch needs to monitor for three conditions: greater than, less than, or equal.  Then, you could use an if…else if…else statement.

if(a > b)
  {
    Serial.print("a is greater than b");
  }
  else if(a < b)
  {
    Serial.print("b is greater than a");
  }
  else
  {
    Serial.print("a is equal to b");
  }

A sketch can also have multiple conditions with the Arduino's boolean operators, such as && and ||.  The && operator means AND; the || operator means OR.  For example, this statement’s block will execute only if a is greater than 50 AND b is less than 50:

 if((a > 50) && (b < 50))
  {
    Serial.print("Values in normal range");
  }

Another example: this one prints the warning message if a is greater than 100 OR b is less than zero.

if((a > 100) || (b < 0))
  {
    Serial.print("Danger Will Robinson!");
  }

One last example: if you want to make a comparison to find out if two values are equal, you have to use two equal signs next to each other: ==.

if(a == b)
  {
    Serial.print("a and b are equal");
  }
  • Try these variations in a sketch.

You can chain more else if statements after if
The example in this activity only uses one else if, but you could use more. 

The rest of the statement gets left behind after it finds a true condition. 
If the if statement turns out to be true, its code block gets executed and the rest of the chain of else ifs gets passed by.