In this section, we will explore the switch case statements in ALGOL. Switch case statements are used to execute one block of code among many based on the value of a variable or expression. This is particularly useful when you have multiple conditions to check and want to avoid using multiple if-else statements.
Key Concepts
- Switch Case Syntax: Understanding the basic structure of switch case statements in ALGOL.
- Case Labels: Defining different cases within the switch statement.
- Default Case: Handling cases where none of the specified cases match.
- Nested Switch Statements: Using switch statements within other switch statements.
Switch Case Syntax
The basic syntax for a switch case statement in ALGOL is as follows:
switch (expression) begin
case value1:
// Code to execute if expression equals value1
case value2:
// Code to execute if expression equals value2
...
default:
// Code to execute if expression does not match any case
end switch;Example
Let's look at a simple example to understand how switch case statements work in ALGOL.
begin
integer day;
day := 3;
switch (day) begin
case 1:
print("Monday");
case 2:
print("Tuesday");
case 3:
print("Wednesday");
case 4:
print("Thursday");
case 5:
print("Friday");
case 6:
print("Saturday");
case 7:
print("Sunday");
default:
print("Invalid day");
end switch;
end;In this example, the variable day is set to 3. The switch statement checks the value of day and executes the corresponding case block. Since day is 3, it prints "Wednesday".
Case Labels
Case labels are used to define the different possible values for the expression in the switch statement. Each case label is followed by a colon and the block of code to execute if the expression matches the case label.
Example
begin
integer grade;
grade := 85;
switch (grade) begin
case 90:
print("A");
case 80:
print("B");
case 70:
print("C");
case 60:
print("D");
default:
print("F");
end switch;
end;In this example, the variable grade is set to 85. Since there is no case label for 85, the default case is executed, and it prints "F".
Default Case
The default case is optional but recommended. It handles any values that do not match any of the specified case labels. This ensures that the switch statement has a defined behavior for all possible values of the expression.
Example
begin
integer month;
month := 13;
switch (month) begin
case 1:
print("January");
case 2:
print("February");
case 3:
print("March");
case 4:
print("April");
case 5:
print("May");
case 6:
print("June");
case 7:
print("July");
case 8:
print("August");
case 9:
print("September");
case 10:
print("October");
case 11:
print("November");
case 12:
print("December");
default:
print("Invalid month");
end switch;
end;In this example, the variable month is set to 13. Since there is no case label for 13, the default case is executed, and it prints "Invalid month".
Nested Switch Statements
Switch statements can be nested within other switch statements. This allows for more complex decision-making processes.
Example
begin
integer category, item;
category := 1;
item := 2;
switch (category) begin
case 1:
switch (item) begin
case 1:
print("Electronics: TV");
case 2:
print("Electronics: Radio");
default:
print("Electronics: Unknown item");
end switch;
case 2:
switch (item) begin
case 1:
print("Clothing: Shirt");
case 2:
print("Clothing: Pants");
default:
print("Clothing: Unknown item");
end switch;
default:
print("Unknown category");
end switch;
end;In this example, the outer switch statement checks the category variable, and the inner switch statement checks the item variable. Since category is 1 and item is 2, it prints "Electronics: Radio".
Practical Exercise
Exercise
Write a program that takes an integer input representing a month (1-12) and prints the corresponding season. Use a switch case statement to determine the season.
- Months 12, 1, 2: Winter
- Months 3, 4, 5: Spring
- Months 6, 7, 8: Summer
- Months 9, 10, 11: Autumn
Solution
begin
integer month;
month := 4; // Change this value to test different months
switch (month) begin
case 12, 1, 2:
print("Winter");
case 3, 4, 5:
print("Spring");
case 6, 7, 8:
print("Summer");
case 9, 10, 11:
print("Autumn");
default:
print("Invalid month");
end switch;
end;In this solution, the switch statement checks the value of month and prints the corresponding season. If the month is not between 1 and 12, it prints "Invalid month".
Common Mistakes and Tips
- Forgetting the Default Case: Always include a default case to handle unexpected values.
- Incorrect Case Labels: Ensure that case labels match the possible values of the expression.
- Nested Switch Complexity: Avoid overly complex nested switch statements as they can be hard to read and maintain.
Conclusion
Switch case statements in ALGOL provide a clear and efficient way to handle multiple conditions. By understanding the syntax, case labels, default cases, and nested switch statements, you can write more readable and maintainable code. Practice with the provided exercises to reinforce your understanding and prepare for more advanced topics.
