Cのswitch文が恋しくなった一瞬

label 0,1,2,3;
begin
case modcnt of
  0:goto 0;
  1:goto 1;
  2:goto 2;
  3:goto 3;
end;

while k< siz do begin
 0:   p1(k); inc(k); if k>=siz then break;
 1: d:=p2(k); inc(k); if k>=siz then break;
 2:   p3(k); inc(k); if k>=siz then break;
 3: w:=p4(k); inc(k);
end;
modcnt:=(modcnt+siz) mod 4;