Gotos are useful in error handling; if you have multiple checks then you either end up nesting all those checks and reading/writing code with no end of whitespace on the left, or you invert the logic (which is confusing) and have multiple exits, which is fine if you *can* have multiple exits, or you have to invent a flag that has nothing to do with anything, set it when there is an error and keep t