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.

What is a switch statement?

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.

Top comments (3)

Collapse
 
anusionwuchikel profile image
Anusionwu Chikeluba George

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

Collapse
 
devdrake0 profile image
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?

Collapse
 
anusionwuchikel profile image
Anusionwu Chikeluba George

Yes it does. Thank you very much.