Files
cpp-course/modules/02_control_flow/src/switch_statements.cpp
T
David Gil de Gómez Pérez 626b01cf8a Solved: 08 - Switch Statements
Added a contract precondition to apply_operation
2026-08-12 14:58:20 +03:00

42 lines
1.2 KiB
C++

#include "switch_statements.hpp"
namespace control_flow {
// enum class Operation { Add, Subtract, Multiply, Divide, Unknown };
auto parse_operation(const char op) -> Operation {
switch (op) {
case '+': return Operation::Add;
case '-': return Operation::Subtract;
case '*': return Operation::Multiply;
case '/': return Operation::Divide;
default: return Operation::Unknown;
}
}
auto apply_operation(const Operation op, const int lhs, const int rhs) -> int
pre(op != Operation::Unknown)
{
switch (op) {
case Operation::Add: return lhs + rhs;
case Operation::Subtract: return lhs - rhs;
case Operation::Multiply: return lhs * rhs;
case Operation::Divide: return lhs / rhs;
default: return -1; // Unreachable due to contract
}
}
auto day_name(const int day) -> std::string {
switch (day) {
case 1: return "Monday";
case 2: return "Tuesday";
case 3: return "Wednesday";
case 4: return "Thursday";
case 5: return "Friday";
case 6: return "Saturday";
case 7: return "Sunday";
default: return "Invalid";
}
}
} // namespace control_flow