Как ни странно, я тоже в свое время считал, что goto плохо и дурной вкус. Нет, не плохо! Иногда читаемость, как в данном примере, повышается на порядок. И goto плохо там, где его неправильно применяют.
Более того, внутри любой цикл все равно раскладывается на jmp и br :-)
Так что все зависит от квалификации и применения.
Goto перестали рекомендовать, из-за того, что очень просто с ним пропустить освобождение чего-то важного. Так что новичкам его лучше не пользовать, это очень точный инструмент.
From: Linus Torvalds
Subject: Re: any chance of 2.6.0-test*?
Date: Sun, 12 Jan 2003 11:38:35 -0800 (PST)
On Sun, 12 Jan 2003, Rob Wilkens wrote:
>
> I'm REALLY opposed to the use of the word "goto" in any code where it's
> not needed.
I think goto's are fine, and they are often more readable than large
amounts of indentation. That's _especially_ true if the code flow isn't
actually naturally indented (in this case it is, so I don't think using
goto is in any way _clearer_ than not, but in general goto's can be quite
good for readability).
Of course, in stupid languages like Pascal, where labels cannot be
descriptive, goto's can be bad. But that's not the fault of the goto,
that's the braindamage of the language designer.
Linus