The 7 Pseudocode Mistakes That Cost You Marks in Paper 2
By Zafar Ali Khan · 2 Mar 2026 · 6 min read
1. Missing terminators. Every IF needs ENDIF, every WHILE needs ENDWHILE, every FOR needs NEXT, every CASE needs ENDCASE. Draw a vertical line for each block if you must.
2. ELSE IF does not exist. Nest a second IF inside the ELSE. Yes, it's ugly. It's also correct.
3. Using = for assignment. Assignment is ←. The = symbol is comparison only. Mixing them is the fastest way to lose a mark on an otherwise perfect algorithm.
4. Off-by-one loops. FOR i ← 1 TO 10 runs ten times, inclusive. If your array is ARRAY[0:9] you need FOR i ← 0 TO 9.
5. Not declaring variables. In 9618 Paper 2 you are expected to DECLARE every variable with its type. Undeclared = marks gone.
6. Forgetting the sentinel. A 'loop until the user enters -1' question needs the input before the loop and again inside it (or a REPEAT … UNTIL). Trace it on the Playground on this site to be sure.
7. Validation with no loop. 'Reject invalid input and ask again' means a REPEAT … UNTIL or WHILE — a single IF does not ask again.
Run your answers through the Pseudocode Playground on this site. If it executes and produces the right output, you've caught most of these already.