- Helps simplify nested
if-else
statements that involve simple equality
- Can only be used with integers and character data types
- Example
// Using nested if-else statements
char color;
cout << "Favorite color (B for Blue, R for Red, G for Green)? ";
cin >> color;
if (color == 'B')
cout << "You like blue";
else if (color == 'R')
cout << "You like red";
else if (color == 'G')
cout << "You like green";
else
cout << "You like something else";
// Equivalent switch statement
switch (color)
{
case 'B':
cout << "You like blue";
break;
case 'R':
cout << "You like red";
break;
case 'G':
cout << "You like green";
break;
default:
cout << "You like something else";
}
default
statement is optional
break
is necessary or statements inside the switch
will continue to execute
switch (color)
{
case 'B':
cout << "You like blue";
// break;
case 'R':
cout << "You like red"; // This executes if color was 'B'!
...
}
- By purposefully leaving out
break
statements, multiple
case
statements can be grouped together
// Case-insensitive matching
switch (color)
{
case 'B':
case 'b':
cout << "You like blue";
break;
case 'R':
case 'r':
cout << "You like red";
break;
case 'G':
case 'g':
cout << "You like green";
break;
default:
cout << "You like something else";
}