42 lines
1.2 KiB
C++
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
|