Optional: other ways to choose
Recognize switch for exact choices and the conditional operator for choosing a value.
Switch selects an exact case
This is a second-reading topic: every core exercise can use if and else. A switch is useful when an integer or character is compared with fixed values. A matching case is where execution starts; break exits the switch.
Without an appropriate break, execution can continue into later cases. This is fallthrough. default handles unmatched values. Use an if chain for intervals or compound conditions; switch does not directly select on std::string or double.
#include <iostream>
int main() {
char choice = ' ';
std::cin >> choice;
switch (choice) {
case 'A':
std::cout << "Add\n";
break;
case 'S':
std::cout << "Subtract\n";
break;
default:
std::cout << "Unknown\n";
}
return 0;
}An expression can choose a value
The conditional expression condition ? valueIfTrue : valueIfFalse produces one value. For integers a and b, int larger = (a > b) ? a : b chooses the larger.
An ordinary if/else with two assignments expresses the same decision. Use whichever is easier to explain; deeply nested conditional operators hide the structure. Do not paste both alternative declarations of larger into the same scope.
Why does the A case use break after printing Add?
Turn the idea into code
Read a, an operator, and b, in that order. Support +, -, *, and integer /. Assume |a|, |b| ≤ 10⁶. Print ERROR for division by zero.
Give me a hint
Use a char for the operator and long long for arithmetic. Guard the division within its branch.
Show the explained solution
Each case computes one operation and breaks. The divisor check is only needed for division. The task guarantees one of the four operators.
#include <iostream>
int main() {
long long a = 0, b = 0;
char operation = ' ';
std::cin >> a >> operation >> b;
switch (operation) {
case '+': std::cout << a + b << '\n'; break;
case '-': std::cout << a - b << '\n'; break;
case '*': std::cout << a * b << '\n'; break;
case '/':
if (b == 0) { std::cout << "ERROR\n"; }
else { std::cout << a / b << '\n'; }
break;
}
return 0;
}Your notes
Mark complete when you can explain it yourself.