Doug Hull, MathWorks
(Originally posted on Doug's MATLAB Video Tutorials blog.)
This three minute video takes a look at the "Switch case" flow control statement and contrasts it with the more familiar "If elseif" flow control statement. Often times, people will use an "If elseif" statement where a "Switch case" statement is going to be cleaner and easier to understand and maintain.
Other videos have been gathered here: https://blogs.mathworks.com/pick/category/video/ Other MATLAB Basics posts have been gathered here: https://blogs.mathworks.com/pick/category/matlab-basics/ As a cool little post script: At most places you celebrate the 100th something or other, but since this is a software company I feel I should celebrate the 64th video (2^6) and as I post this I see that it is the 18128th file on the File Exchange capturing the next power of two in the last three digits.
Today in MATLAB Basics, we're going to discuss the use of switch case statements as a cleaner, more maintainable way of doing something like this, that you often see done with else/if statements. Notice in this if/else statement, what we have is someone is creating a val equal to 3 variable, and then checking with a bunch of if/elses to find out what the value is. And then displaying the correct words.
How would this look if it were done as a switch? I think this is more clean and easy to understand doing it this way. Notice there's just a lot less characters on screen when we do it this way. Basically, what we're doing is saying, I want to switch through these cases as if it was a switch yard at a train depot or something like that. And so we're going to be switching based on the variable val.
If the case is 1, that is if val equals 1, display 1. Otherwise, we're going to try case two, case three. And if none of those were correct, then we're just going to say otherwise and do something else. That's how the switch case works.
And if we run it here, we can see that it indeed did find the correct value. If we come here and put our value as 8 and run it again, we can see that it just goes through and says something else. One of the other advantages of switch case in where it's most often actually used is with strings.
Let's take a look here with strings where we can just say, my string is equal to alpha. And then we're going to switch through that railroad switch yard based on the different cases. Now, maybe we're interested in doing one thing if it's alpha or bravo. And then something specific if it's Charlie. And then otherwise we just say unknown.
Let's give that a shot running a F5. And we can see that works also, that either alpha or bravo would work just fine there. OK. This should show you why using a switch case statement can be cleaner than its equivalent in an if-then-else statement. Thank you.
Recorded: 2 Jan 2008