Opis Zapis metody może być mylący, jednak program działa tak, jak gdyby pętla do…while była całkowicie pod całym switch, natomiast pod każdym case byłoby polecenie skoku do odpowiedniego miejsca pętli do…while. Inny rodzaj zapisu ułatwiający zrozumienie mógłby mieć postać: void kopiuj(char *wej, char *wyj, int krotnosc) { int n = (krotnosc + 7) / 8; switch (krotnosc % 8) { case 0: goto miejsce0; case 7: goto miejsce7; case 6: goto miejsce6; case 5: goto miejsce5; case 4: goto miejsce4; case 3: goto miejsce3; case 2: goto miejsce2; case 1: goto miejsce1;
miejsce0: do { *wyj++ = *wej++; miejsce7: *wyj++ = *wej++; miejsce6: *wyj++ = *wej++; miejsce5: *wyj++ = *wej++; miejsce4: *wyj++ = *wej++; miejsce3: *wyj++ = *wej++; miejsce2: *wyj++ = *wej++; miejsce1: *wyj++ = *wej++; } while (--n > 0);
Instrukcja przypisania *wyj++ = *wej++ musi być wykonana krotnosc razy. Pętla do zawiera 8 kopiowań. Dlatego należy obliczyć ile razy krotnosc dzieli się przez 8 – właśnie tyle razy należy wykonać do.