Gotos <i>are</i> trivial. They map directly to unconditional jumps at the assembly level.<p>They&#x27;re one of the best ways to implement exception handling in C (look at how the Linux kernel uses them).<p>It&#x27;s also not unusual to have conditionals that don&#x27;t nest. Of course, if you really want to avoid using a goto, you have the option of duplicating a lot of code in order to satisfy all the code paths, decreasing readability and making it harder to maintain. Or you can just use a goto and not worry about it.<p>I do understand <i>why</i> people want to avoid &#x27;goto&#x27;, but Dijkstra wasn&#x27;t always right...