Any kind of loop is just syntactic sugar over a goto. Having looping semantics in the language makes it clear when that particular pattern is being used, and it can prevent bugs that might pop up if everyone was writing their own ad hoc loops. Same thing with break. It makes the intent clear and makes it harder to accidentally stray from that intent.<p>Of course, there&#x27;s a problem when sometimes you <i>want</i> to stray from the patterns encouraged by the language, but it doesn&#x27;t provide adequate means to do so.