Challenge 1: A Missing break Caught at Compile Time — Possible Solution ==================================================================== Broken attempt — Program.cs: int month = 3; switch (month) { case 1: Console.WriteLine("January"); // no break -- deliberately omitted case 2: Console.WriteLine("February"); break; default: Console.WriteLine("Some other month"); break; } Representative compile error: Program.cs(5,9): error CS0163: Control cannot fall through from one case label ('case 1:') to another Fixed — Program.cs: int month = 3; switch (month) { case 1: Console.WriteLine("January"); break; // added case 2: Console.WriteLine("February"); break; default: Console.WriteLine("Some other month"); break; } Output (month = 3): Some other month Explanation: case 1's body (a Console.WriteLine call) is non-empty, so C# requires it to end in a jump statement -- break, return, throw, or goto case. Leaving it to fall through into case 2's body is rejected at compile time, not silently allowed the way c1-3's C and java1-3's Java both permit. Adding break resolves it immediately. WHY THIS WORKS AS AN ANSWER ------------------------------ This reproduces the exact CS0163 compile error the chapter describes for a non-empty case missing its jump statement, and fixes it the straightforward way -- adding break -- confirming C#'s fallthrough prohibition is enforced by the compiler, not left as a runtime risk.