Selection and Conditions
Algorithms That Decide
A plain sequence does the same steps every time. But real life needs decisions:
- IF it is raining → take an umbrella
- IF the password is correct → unlock the phone
- IF the player's health reaches 0 → game over
Selection is the building block that lets an algorithm choose between paths. It is the "IF" in computing — and you can master it without writing a single line of real code.
Conditions: True or False?
Every selection is controlled by a condition — a test whose answer is always exactly true or false. Never "maybe".
| Condition | Example answer |
|---|---|
| Is it raining? | true |
| score > 10 | false (if score is 7) |
| name = "Alex" | true (if the name is Alex) |
Conditions often compare values using: = equals, > greater than, < less than, >= at least, <= at most.
IF, THEN, ELSE
The full pattern of selection, in pseudocode:
IF it is raining THEN
take an umbrella
ELSE
wear sunglasses
- Condition true → the THEN branch runs
- Condition false → the ELSE branch runs
- Exactly one branch runs — never both, never neither
The ELSE part is optional. Without it, a false condition simply means "skip and carry on". In a flowchart, selection appears as a diamond with two labelled exits:
┌──────────────┐
│ Is it │
┌────│ raining? │────┐
│YES └──────────────┘ NO │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ Take │ │ Wear │
│ umbrella │ │ sunglasses │
└──────────────┘ └──────────────┘
Chaining Decisions — ELSE IF
Some decisions have more than two outcomes. Chain the tests:
IF mark >= 80 THEN
award Gold
ELSE IF mark >= 50 THEN
award Silver
ELSE
award Bronze
Trace it with mark = 65: Is 65 ≥ 80? No. Is 65 ≥ 50? Yes → Silver, and everything after is skipped. Tests run top to bottom and stop at the first true one — so the order of the tests matters.
Combining Conditions — AND, OR, NOT
Conditions can be joined with three logic words:
| Operator | The result is true when… | Example |
|---|---|---|
| AND | both parts are true | height > 120 AND age >= 8 |
| OR | at least one part is true | is a student OR is over 65 |
| NOT | the condition is false (it flips it) | NOT raining |
Worked example: a ride allows you on IF height > 120 AND age >= 8.
Sam is 130 cm and 7 years old → height passes, age fails → AND needs both → Sam cannot ride.
Priya is 145 cm and 9 → both pass → Priya rides.
A common trap: AND is stricter than OR. Swapping them changes who gets through — a serious bug in a real system.
Worked Example — Nested Selection for a Login Screen
Real systems often need a decision inside another decision. Consider a login screen that must check both the username and the password, and give a helpful message either way:
IF username is correct THEN
IF password is correct THEN
OUTPUT "Welcome back!"
ELSE
OUTPUT "Wrong password — try again"
ENDIF
ELSE
OUTPUT "Username not recognised"
ENDIF
This is called nested selection: an IF inside another IF, explored further in nested structures. Trace it with a correct username but wrong password: the outer condition is true, so we enter the outer THEN branch; inside it, the inner condition is false, so we get "Wrong password — try again". Notice that nesting lets the program give a more specific message than a single flat condition could — IF username correct AND password correct could only ever say "login failed" without knowing which part was wrong, because AND collapses both tests into one true/false answer.
Why the Order of ELSE IF Tests Matters
Return to the grading example — IF mark >= 80 THEN Gold ELSE IF mark >= 50 THEN Silver ELSE Bronze — and watch what happens if the tests are written in the wrong order:
IF mark >= 50 THEN
award Silver
ELSE IF mark >= 80 THEN
award Gold
ELSE
award Bronze
Trace this broken version with mark = 95: is 95 >= 50? Yes — award Silver, and stop. The mark >= 80 test is never even reached, even though 95 clearly deserves Gold. This is a genuinely common bug: chained ELSE IF tests run top to bottom and stop at the first true one, so broader conditions must come after narrower ones, not before. Whenever a chain of ELSE IFs gives a surprising result, checking the order of the tests — not just their content — is one of the first things to try while debugging.
Key Words
- Selection — choosing between paths in an algorithm based on a condition
- Condition — a test that is either true or false
- IF–THEN–ELSE — run one branch when true, the other when false
- AND / OR / NOT — logic operators for combining or flipping conditions
Questions & comments
Comments are public and are checked before they appear. Please don’t post your full name, email, phone number, school, or anything else that identifies you. How we use this.
Loading comments…