TITLE: a concise example using "goto" (Source: Private mailing from David on Mon Oct 6 11:24:58 1997) TRIBBLE: David R. Tribble (david.tribble@central.beasys.com) Sometimes using goto statements is the most concise and understandable form for certain programming constructs. For example: void parse() { Token * tok; read: tok = getToken(); // 1 shift: if (shiftTok(tok)) // 2 goto read; if (reduceTok(tok)) // 3 goto shift; } The three statements above form two tight intertwined loops. It's left as an excercise for the reader to rewrite the loops without using gotos. But you'll find that the way it's written above is the most concise and clearest.