Ready to begin
No records have been processed. Start with Next step.

Follow the selected procedure. Change a field, tie rule or weekday and explain why the result changes.
Ready
No records have been processed. Start with Next step.
Predict the next change. Keep track of which list level, field and position convention the procedure uses.
Confirm=[]; Reject=[]
foreach x in MathsA:
found = false
foreach y in PhysicsA:
if x == y:
found = true
exitloop
if found: Confirm = Confirm ++ [x]
else: Reject = Reject ++ [x]
# For MathsB, search PhysicsA, then PhysicsB only if not found.
# Classify x once after the allowed searches finish.One non-match does not prove absence. Keep searching allowed destinations until a match appears or every candidate is exhausted. True can be established early; false requires exhausting the permitted searches. Reset found = false for EACH new outer x.
exitloop is different from return. It leaves the nearest enclosing loop, then continues the surrounding procedure. After a match in Physics A for a Maths B student, skip the Physics B search. Keep processing all other Maths B students instead of returning from the whole task.
What goes wrong if found is initialized once before the outer loop?
A true value from one student may carry over and falsely confirm later students.
Does exitloop stop every nested loop?
No. Here it exits the nearest inner foreach only.
Can you append Reject immediately after one unequal y?
No. A later eligible y may match x. Decide after the necessary searches.