Update exercises/108_labeled_switch.zig

Fixed an error in the debug statement and made the text a bit more coherent.

Signed-off-by: chrboesch <chrboesch@noreply.codeberg.org>
This commit is contained in:
chrboesch 2025-01-08 13:22:29 +00:00
parent 54f743ba43
commit 90d05995b5

View file

@ -15,11 +15,11 @@
// 1 => { op = 2; continue; }, // 1 => { op = 2; continue; },
// 2 => { op = 3; continue; }, // 2 => { op = 3; continue; },
// 3 => return, // 3 => return,
// 4 => {}, // else => {},
// } // }
// break; // break;
// } // }
// std.debug.print("This statement cannot be reached"); // std.debug.print("This statement cannot be reached\n", .{});
// } // }
// //
// By combining all we've learned so far, we can now proceed with a labeled switch // By combining all we've learned so far, we can now proceed with a labeled switch
@ -36,23 +36,21 @@
// 3 => return, // 3 => return,
// else => {}, // else => {},
// } // }
// std.debug.print("This statement cannot be reached"); // std.debug.print("This statement cannot be reached\n", .{});
// } // }
// //
// The flow of execution on this second case is: // The flow of execution on this second case is:
// 1. The switch starts with value '1'; // 1. The switch starts with value '1';
// 2. The switch evaluates to case '1' which in turn uses the continue statement // 2. The switch evaluates to case '1' which in turn uses the continue statement
// to re-evaluate the labeled switch again, now providing the value '2'; // to re-evaluate the labeled switch again, now providing the value '2';
// 3. In the case '2' we repeat the same pattern as case '1' // 3. In the case '2' we repeat the same pattern as case '1'
// but instead the value to be evaluated is now '3'; // but instead the value to be evaluated is now '3';
// 4. Finally we get to case '3', where we return from the function as a whole. // 4. Finally we get to case '3', where we return from the function as a whole,
// so the debug statement is never executed.
// 5. In this example, since the input does not have clear, exhaustive patterns and // 5. In this example, since the input does not have clear, exhaustive patterns and
// can essentially be any `u8` integer, we need to handle all cases not explicitly // can essentially be any 'u8' integer, we need to handle all cases not explicitly
// covered by using the `else => {}` branch as the default case. // covered by using the 'else => {}' branch as the default case.
// //
// Since step 4 or a break stament do not exist in this switch, the debug statement is
// never executed
// //
const std = @import("std"); const std = @import("std");