This blog post compares the clarity of a number of programs written with goto vs. with other control flow methods: <a href="https://blog.joren.ga/gotophobia-harmful">https://blog.joren.ga/gotophobia-harmful</a><div><br></div><div>Knuth’s “Structured Programming with go to Statements” argues that we eventually missed the main point of structured programming by focusing too much on goto. <a href="https://pic.plover.com/knuth-GOTO.pdf">https://pic.plover.com/knuth-GOTO.pdf</a></div><div><br></div><div>Error handling (especially in loops or when releasing resources in non-RAII languages) and implementing state machines are commonly brought up as cases where goto is more fitting than common “structured” control flow statements. I think some newer languages like Zig extend the “break” mechanism to let you break to a label, so that sort of covers the first case.</div><div><br></div><div>Josh</div>