-=-=-=-=-=-=-=-=-= Source =-=-=-=-=-=-=-=-=- while (expr) instr -=-=-=-=-=-=-=-=- Method 1 -=-=-=-=-=-=-=-=- l_continue: if (!(expr)) goto l_break; instr; goto l_continue; l_break: -=-=-=-=-=-=-=-=- Method 2 -=-=-=-=-=-=-=-=- goto l_continue: l_do_expr: instr; l_continue: if (expr) goto l_do_expr; l_break: -=-=-=-=-=-=-=-=-= Source =-=-=-=-=-=-=-=-=- do instr while (expr) -=-=-=-=-=-=-=-=- Method 1 -=-=-=-=-=-=-=-=- l_continue: instr; if (expr) goto l_continue; l_break: -=-=-=-=-=-=-=-=-= Source =-=-=-=-=-=-=-=-=- for (expr1; expr2; expr3) instr -=-=-=-=-=-=-=-=- Method 1 -=-=-=-=-=-=-=-=- expr1; l_loop: if (!(expr2)) goto l_break; goto l_instr; l_continue: expr3; goto l_loop; l_instr: instr; goto l_continue; l_break: -=-=-=-=-=-=-=-=-= Source =-=-=-=-=-=-=-=-=- if (expr) instr1 else instr2 -=-=-=-=-=-=-=-=- Method 1 -=-=-=-=-=-=-=-=- if (!(expr)) goto l_else; instr1; goto l_end; l_else: instr2; l_end: