The ONLY reason goto is even supported in C++ is because a handfull of people used them in C, and in order to maintain compatibility with the hundreds of all ready written libraries the designers of C++ decided to allow it.
Just in writting that first sentence I thought of five different ways of doing what it is you are trying to describe (yes everyone here understands you btw). Functions are the way for you to go, I think you'll like them alot based on the way you wrote that since they return at the end of their execution so mistakes like the one you made with not jumping to Line 3 won't matter.
Just curious are you coming off of Assem, Bat or Batch?
i know about loops, i use them all the time, but loops require something to happen 1st. sometimes i want something like:
if(....){goto ....;}
which will take you out of the if statement. i want something that will calculate something, and then go back to what it was doing before it calculated it