I'm not sure if you were serious about this question or not, but it actually points to what seems to be the real point of this topic. Learning good programming practices. Early versions of BASIC had an arbitrary GOTO statement that could go to any line of code, not just those that were labelled. That may have been what was meant, but when I think of an "arbitrary" goto, I tend to think of something else. To me, the problem wasn't the language, but the way it was used. I would, therefore, say that an arbitrary GOTO statement is one that doesn't follow a well known and easy to follow pattern. One that leads to what's called spaghetti code. I learned BASIC on my own and learned very quickly to organize my IF, GOTO, and GOSUB statements so that they were easy for me to follow. I was never told to do this, but I learned by example from seeing programs that had been well written. When I got into high school and took a computer programming class (which was a joke for me), I would finish my projects so quickly that I ended up helping other students. That's when I saw the importance of what I had already learned by example. In fact, I ended up polishing my programming style from the examples presented to me in that class (the only thing I did learn from that class). Some of the other students tried to imitate those examples as well and generally had well written and relatively easy to debug code. It would look something like this:
10 x = 1
20 if x <= 10 then goto 60
30 print x
40 x = x + 1
50 goto 20
60 end
This is the BASIC encoding of a while loop (a bad one, since an FOR loop would be easier, but I didn't care to do something more practical for a while loop, such as reading a set of values until no more values remain). I forget what version of BASIC it was now (I learned so many =p). What the other students wrote (those who didn't catch on to the examples)... well, its hard to show with this simple of an example, but when you had more complex statements with any level of nesting, they would fail to structure their code in a way that made it easy to tell what was going on and they would have goto statements that crossed one another (loops would overlap instead of being nested, for example). I could still pick out the path of logic that their program would actually follow, but they couldn't. And my first step in fixing it would have been to organize it into meaningful structures in any case. Of course, when I was helping other students, I couldn't do that for them, and so I spent most