Cytat:
Napisany przez Berion
Ale powiedz please, czemu etykiety to niedobry pomys***322;?
|
bo jest be

za pomoc***261; goto nie mo***380;na skoczy***263; do innej procedury, p***281;tli...
poza tym estetyka...
tworzenie menu za pomoca goto jest kozackie... i tak wyglada...
zamiast je robic za pomoca goto/etykiet i if'ow to lepiej podzielic program na procedury i wywolywac je za pomoca case... wygl***261;da ***322;adniej i logiczniej...
napisalem Ci na kolanie menu... teraz zr***243;b to samo na goto

teraz rozumiesz?
Kod:
program bleble;
uses crt;
var
zonk,zonk1:integer;
procedure aa;
begin
writeln('jeden');
end;
procedure bb;
begin
writeln('dwa');
end;
procedure menu;
begin
writeln('[1] procedura aa');
writeln('[2] procedura bb');
writeln('[3] wyjdz');
read(zonk);
end;
begin
clrscr;
zonk1 := 1;
repeat
menu;
case zonk of
1: aa;
2: bb;
3: exit;
end;
until zonk1 <> 1;
readln;
end.
po pewnym czasie doszedlbys do wniosku:
jesli bedziesz miec kilkanascie etykiet to stracisz kontrole nad programem...
np.
masz w programie kolejno (gdzies tam miedzy kodem)
label zonk1;
(...)
label zonk2;
(...)
label zonk3
(...)
label zonkN
i teraz tak jak wywolasz etykiete zonk1; to wykona sie wszystko w innych etykietach nizej czy tego chcesz czy nie...
jesli wywolasz zonk2; to tez za kazdym razem wykona sie wszystko co pod nia...
wywolujac procedure case'm _wyjmujesz_ do wykonania potrzebny Ci FRAGMENT programu, tego nie uzyskasz za pomoca goto