Your memory is a little hazy because the ZX Spectrum had both subroutines and for loops (I believe all Sinclair machines did).