Go for a hybrid.
So, for me I'd say contract is better because you get the best deals. Free phone and and and and.
For example the MTN MyChoice Contracts, which are either open or capped for TopUp. Best thing about MyChoice is that you get data offered to you at really great prices e.g. 2GB for R120. That's R60/GB.
Only draw back is that a lot of things do happen in 24mths in the tech ind. But, thats why TopUp is great because you don't buy if the data is too expensive. I doubt if prices for the latest phones would drop. They drop only as the device you have is getting outdated.