Introduction
In programming, there will be many occasions in which you will want different blocks of code to run depending on user input or other factors.
As an example, you might want a form to submit if each field is filled out properly, but you might want to prevent that form from submitting if some required fields are missing. In order to achieve tasks like these we have conditional statements, which are an integral part of all programming languages.
Conditional statements execute a specific action based on the results of an outcome of true
or false
.
A few examples of JavaScript conditional statements you might see include:
- Check the location of a user and display the correct language based on country
- Send a form on submit, or display warnings next to missing required fields
- Open a dropdown on a click event, or close a dropdown if it is already open
- Display an alcohol purveyor’s website if the user is over the legal drinking age
- Display the booking form for a hotel but not if the hotel is booked
Conditional statements are part of the logic, decision making, or flow control of a computer program. You can compare a conditional statement to a “Choose Your Own Adventure” book, or a flowchart.
In this tutorial, we will go over conditional statements, including the if
, else
, and else if
keywords. We will also cover the ternary operator.
If Statement
The most fundamental of the conditional statements is the if
statement. An if
statement will evaluate whether a statement is true or false, and only run if the statement returns true
. The code block will be ignored in the case of a false
result, and the program will skip to the next section.
An if
statement is written with the if
keyword, followed by a condition in parentheses, with the code to be executed in between curly brackets. In short, it can be written as if () {}
.
Here is a longer examination of the basic if
statement.
if (condition) {
// code that will execute if condition is true
}
The contents of an if
statement are indented, and the curly brackets containing the block of code to run do not end in a semicolon, just like a function block.
As an example, let’s consider a shopping app. Say, for the functionality of this app, a user who has deposited a certain amount of funds into their account would then like to buy an item from the store.
// Set balance and price of item
const balance = 500;
const jeans = 40;
// Check if there are enough funds to purchase item
if (jeans <= balance) {
console.log("You have enough money to purchase the item!");
}
Output
You have enough money to purchase the item!
We have an account balance of 500
, and want to buy a pair of jeans for 40
. Using the less than or equal to operator, we can check if the price of jeans is less than or equal to the amount of funds we have. Since jeans <= balance
evaluates to true
, the condition will pass and the block of code will run.
In a new example, we will create a new shop item that costs more than the available balance.
// Set balance and price of item
const balance = 500;
const phone = 600;
// Check if there is enough funds to purchase item
if (phone <= balance) {
console.log("You have enough money to purchase the item!");
}
This example will have no output, since phone <= balance
evaluates to false
. The code block will simply be ignored, and the program will proceed to the next line.
Else Statement
With if
statements, we only execute code when a statement evaluates to true
, but often we will want something else to happen if the condition fails.
For example, we might want to display a message telling the user which fields were filled out correctly if a form did not submit properly. In this case, we would utilize the else
statement, which is the code that will execute if the original condition does not succeed.
The else
statement is written after the if
statement, and it has no condition in parentheses. Here is the syntax for a basic if...else
statement.
if (condition) {
// code that will execute if condition is true
} else {
// code that will execute if condition is false
}
Using the same example as above, we can add a message to display if the funds in the account are too low.
// Set balance and price of item
const balance = 500;
const phone = 600;
// Check if there is enough funds to purchase item
if (phone <= balance) {
console.log("You have enough money to purchase the item!");
} else {
console.log("You do not have enough money in your account to purchase this item.");
}
Output
You do not have enough money in your account to purchase this item.
Since the if
condition did not succeed, the code moves on to what’s in the else
statement.
This can be very useful for showing warnings, or letting the user know what actions to take to move forward. Usually an action will be required on both success and failure, so if...else
is more common than a solo if
statement.
Else if Statement
With if
and else
, we can run blocks of code depending on whether a condition is true
or false
. However, sometimes we might have multiple possible conditions and outputs, and need more than simply two options. One way to do this is with the else if
statement, which can evaluate more than two possible outcomes.
Here is a basic example of a block of code that contains an if
statement, multiple else if
statements, and an else
statement in case none of the conditions evaluated to true
.
if (condition a) {
// code that will execute if condition a is true
} else if (condition b) {
// code that will execute if condition b is true
} else if (condition c) {
// code that will execute if condition c is true
} else {
// code that will execute if all above conditions are false
}
JavaScript will attempt to run all the statements in order, and if none of them are successful, it will default to the else
block.
You can have as many else if
statements as necessary. In the case of many else if
statements, the switch
statement might be preferred for readability.
As an example of multiple else if
statements, we can create a grading app that will output a letter grade based on a score out of 100.
The requirements of this app are as follows:
- Grade of 90 and above is an A
- Grade of 80 to 89 is a B
- Grade of 70 to 79 is a C
- Grade of 60 to 69 is a D
- Grade of 59 or below is an F
Below we will create a simple set of if
, else
, and else if
statements, and test them against a given grade.
// Set the current grade of the student
let grade = 87;
// Check if grade is an A, B, C, D, or F
if (grade >= 90) {
console.log("A");
} else if (grade >= 80) {
console.log("B");
} else if (grade >= 70) {
console.log("C");
} else if (grade >= 60) {
console.log("D");
} else {
console.log("F");
}
Output
B
In our example, we first check for the highest score, which will be greater than or equal to 90
. After that, the else if
statements will check for greater than 80
, 70
, and 60
until it reaches the default else
of a failing grade.
Although our grade
value of 87
is technically also true for C
, D
and F
, the statements will stop at the first one that is successful. Therefore, we get an output of B
, which is the first match.
Ternary Operator
The ternary operator, also known as the conditional operator, is used as shorthand for an if...else
statement.
A ternary operator is written with the syntax of a question mark (?
) followed by a colon (:
), as demonstrated below.
(condition) ? expression on true : expression on false
In the above statement, the condition is written first, followed by a ?
. The first expression will execute on true
, and the second expression will execute on false
. It is very similar to an if...else
statement, with more compact syntax.
In this example, we will create a program that checks if a user is 21
or older. If they are, it will print "You may enter"
to the console. If they are not, it will print "You may not enter."
to the console.
// Set age of user
let age = 20;
// Place result of ternary operation in a variable
const oldEnough = (age >= 21) ? "You may enter." : "You may not enter.";
// Print output
oldEnough;
Output
'You may not enter.'
Since the age
of the user was less than 21
, the fail message was output to the console. The if...else
equivalent to this would be "You may enter."
in the if
statement, and "You may not enter."
in the else
statement.
Conclusion
Conditional statements provide us with flow control to determine the output of our programs. They are one of the foundational building blocks of programming, and can be found in virtually all programming languages.
In this article, we learned about how to use the if
, else
, and else if
keywords, and covered nesting of statements, and use of the ternary operator.