📖 Scenario: You are creating a simple program to describe different weather conditions using an enum. You want to print a message based on the weather type.
🎯 Goal: Build a program that uses an enum for weather types and a switch expression to print a message for each weather.
📋 What You'll Learn
Create an enum called Weather with values Sunny, Rainy, Cloudy, and Snowy
Create a variable today of type Weather and set it to Weather.Sunny
Use a switch expression on today to get a message string
Print the message string
💡 Why This Matters
🌍 Real World
Enums and switch expressions are common in programs that need to handle fixed categories like weather, traffic lights, or user roles.
💼 Career
Understanding enums and switch expressions helps you write clear and maintainable code in many software development jobs.
Progress0 / 4 steps
1
Create the Weather enum
Create an enum called Weather with these exact values: Sunny, Rainy, Cloudy, and Snowy.
C Sharp (C#)
Hint
An enum groups related named values. Use enum Weather { Sunny, Rainy, Cloudy, Snowy }.
2
Create a variable for today's weather
Create a variable called today of type Weather and set it to Weather.Sunny.
C Sharp (C#)
Hint
Declare Weather today = Weather.Sunny; to set the current weather.
3
Use a switch expression to get a message
Create a string variable called message and assign it the result of a switch expression on today. Use these exact cases: Weather.Sunny => "It's a bright sunny day!" Weather.Rainy => "Don't forget your umbrella." Weather.Cloudy => "It might rain later." Weather.Snowy => "Time to build a snowman!"
C Sharp (C#)
Hint
Use a switch expression with today switch { ... } to assign message.
4
Print the message
Write a Console.WriteLine statement to print the message variable.
C Sharp (C#)
Hint
Use Console.WriteLine(message); to show the message on screen.
Practice
(1/5)
1. What is the main purpose of using an enum in C#?
easy
A. To give meaningful names to a set of related constant values
B. To create a new class with methods
C. To store multiple unrelated variables
D. To define a method that returns multiple values
Solution
Step 1: Understand what enums represent
Enums are used to name a fixed set of related constants, like days of the week or colors.
Step 2: Compare options with enum purpose
Only To give meaningful names to a set of related constant values correctly describes enums as naming related constant values.
Final Answer:
To give meaningful names to a set of related constant values -> Option A
Quick Check:
Enum = Named constants [OK]
Hint: Enums name fixed sets of values clearly [OK]
Common Mistakes:
Thinking enums create classes
Confusing enums with variables
Assuming enums store unrelated data
2. Which of the following is the correct syntax to declare an enum named Day with values Monday, Tuesday, and Wednesday?
easy
A. enum Day (Monday, Tuesday, Wednesday);
B. enum Day { Monday, Tuesday, Wednesday }
C. enum Day: Monday, Tuesday, Wednesday;
D. enum Day = { Monday, Tuesday, Wednesday };
Solution
Step 1: Recall enum declaration syntax
In C#, enums are declared with the keyword enum, name, and curly braces listing values separated by commas.
Step 2: Match syntax to options
enum Day { Monday, Tuesday, Wednesday } matches the correct syntax: enum Day { Monday, Tuesday, Wednesday }.
Final Answer:
enum Day { Monday, Tuesday, Wednesday } -> Option B
Quick Check:
Enum syntax uses braces and commas [OK]
Hint: Use braces and commas to list enum values [OK]
Common Mistakes:
Using equals sign (=) after enum name
Using colons or parentheses incorrectly
Missing commas between values
3. Given the enum and switch code below, what will be printed?
enum Color { Red, Green, Blue }
Color c = Color.Green;
switch (c)
{
case Color.Red:
Console.WriteLine("Stop");
break;
case Color.Green:
Console.WriteLine("Go");
break;
case Color.Blue:
Console.WriteLine("Wait");
break;
}
medium
A. Go
B. Stop
C. Wait
D. No output
Solution
Step 1: Identify the enum value assigned
The variable c is assigned Color.Green.
Step 2: Follow switch cases for Color.Green
The switch matches Color.Green and prints "Go".
Final Answer:
Go -> Option A
Quick Check:
Switch on enum Green prints "Go" [OK]
Hint: Match enum value to switch case output [OK]
Common Mistakes:
Confusing enum values with strings
Missing break causing fall-through
Assuming default case runs without match
4. What is wrong with the following code snippet?
enum Status { Pending, Approved, Rejected }
Status s = Status.Approved;
switch (s)
{
case Status.Pending:
Console.WriteLine("Waiting");
case Status.Approved:
Console.WriteLine("Accepted");
break;
case Status.Rejected:
Console.WriteLine("Denied");
break;
}
medium
A. Variable s is not assigned a value
B. Enum values are not declared correctly
C. Switch statement syntax is invalid
D. Missing break after case Status.Pending causes fall-through
Solution
Step 1: Check switch cases for breaks
The case Status.Pending lacks a break;, so execution falls through to the next case.
Step 2: Understand fall-through effect
If s was Status.Pending, it would print both "Waiting" and "Accepted" unintentionally.
Final Answer:
Missing break after case Status.Pending causes fall-through -> Option D
Quick Check:
Each switch case needs a break [OK]
Hint: Always add break after each switch case [OK]
Common Mistakes:
Forgetting break causes multiple case runs
Assuming enum declaration is wrong
Thinking variable is uninitialized
5. You want to write a method that takes an enum Season with values Spring, Summer, Fall, Winter and returns a string describing the typical weather. Which switch expression correctly returns "Warm" for Summer and Spring, "Cool" for Fall, and "Cold" for Winter?
hard
A. return season switch {
Season.Spring, Season.Summer => "Warm",
Season.Fall => "Cold",
Season.Winter => "Cool"
};
B. switch (season) {
case Season.Spring:
case Season.Summer:
return "Warm";
case Season.Fall:
return "Cool";
case Season.Winter:
return "Cold";
default:
return "Unknown";
}
D. switch (season) {
case Season.Spring:
return "Warm";
case Season.Summer:
return "Cool";
case Season.Fall:
return "Cold";
case Season.Winter:
return "Cold";
}
Solution
Step 1: Check switch expression syntax
return season switch {
Season.Spring => "Warm",
Season.Summer => "Warm",
Season.Fall => "Cool",
Season.Winter => "Cold",
_ => "Unknown"
}; uses the modern C# switch expression with correct syntax and covers all enum values with correct returns.
Step 2: Verify correct mapping of seasons to weather
Spring and Summer return "Warm", Fall returns "Cool", Winter returns "Cold", and a default case handles unknowns.