Best approach - Button press to stop blinking light game - Replace delay

I haven't done any coding yet..... I'm asking what the best approach would be.

I know I can't use delay as that's effectily pauses the program.

But can't I use a for loop? And in the for loop have a conditional if statement.
If lLED is lit when button is pressed goto win
If LED not lt when button is pressed go to lose.

I haven't tried this but you can break out of a for loop correct?

Or would a while loop be better?

Can you give a couple of quick examples of when one would use a for vs. while loop?

Thanks