## DEV Community

Si for CodeTips

Posted on • Originally published at codetips.co.uk on

# What is a switch statement?

A switch statement evaluates a condition and provides multiple decision points, depending on the value.

In previous articles we've discussed the if statement and if/else statement. The example we discussed, to showcase multiple decision points, was to check the weather and decide what shoes to wear.

``````if (raining) {
// put on wellies
} else-if (snowing) {
// put on snow boots
} else-if (sunny) {
// put on sandals
} else {
// stay indoors
}
``````

We're only evaluating three outcomes, `raining`, `snowing` and `sunny`, with an `else` statement to catch every other type of weather, and it's already quite hard to read.

What if we wanted to create a check on something with more possibilities, for example checking the day of the week and performing the appropriate chores?

``````// Get the current day of the week
var day = getCurrentDay()

if (day == "Monday") {
// Perform Monday chores
} else-if (day == "Tuesday") {
// Perform Tuesday chores
} else-if (day == "Wednesday") {
// Perform Wednesday chores
} else-if (day == "Thursday") {
// Perform Thursday chores
} else-if (day == "Friday") {
// Perform Friday chores
} else-if (day == "Saturday") {
// Perform Saturday chores
} else-if (day == "Sunday") {
// Perform Sunday chores
} else {
// Unknown day
}
``````

We're still not evaluating that many outcomes, but it's getting increasingly difficult to read. Imagine if we took this a step further and evaluated the week number and needed to evaluate 52 outcomes.

Enter the `switch` statement. It is very similar to an `if` statement, in that it takes a condition and provides multiple decision points, but it's much easier to read and maintain.

Let's take the day of the week example from above and convert it to a switch statement.

``````// Get the current day of the week
var day = getCurrentDay()

switch (day) {
case "Monday":
// Perform Monday chores
case "Tuesday":
// Perform Tuesday chores
case "Wednesday":
// Perform Wednesday chores
case "Thursday":
// Perform Thursday chores
case "Friday":
// Perform Friday chores
case "Saturday":
// Perform Saturday chores
case "Sunday":
// Perform Sunday chores
default:
// Unknown Day
}
``````

The finer details of how to write `switch` statements will be discussed in future language-specific articles, but the concept is the same as an `if` statement; it checks a condition ( in this example the value of `day` ) and checks it against each `case` statement. If the condition matches the `case` statement, it will evaluate the code in that section.

Just like an `else` statement, the `default` statement in a `switch` provides a catch-all for anything that doesn't match any of the `case` statements.

Thanks for your explanation @devdrake. I want to ask, how much does a 'break' keyword affect the switch statement execution?

Si

Hey Anusionwu,

The `break` statement will end the execution of the switch statement. Without it, every condition will be checked (similar to having multiple `if` statements instead of an `if/else if/else` statement.

Does that make sense?

Yes it does. Thank you very much.