Break
Adam Boduch
Procedura Break
może być wykonywane tylko w połączeniu z pętlami. W odróżnieniu od procedury (polecenia) Continue polecenie Break
umożliwia zakończenie działania pętli (opuszczenie jej). Po napotkaniu instrukcji Break
dalsze wykonywanie pętli zostaje wstrzymane, a program przechodzi do poleceń znajdujących się za pętlą.
Dzięki poleceniu Break
czekanie na planowe zakończenie pętli nie wydaje się konieczne ? zawsze można zrobić to samemu w dowolnym momencie.
Zmodyfikujmy ostatni przykład, zastępując procedurę Continue poleceniem Break
:
program LoopBreak;
{$APPTYPE CONSOLE}
var
I, Number : Integer; // deklaracja zmiennych
begin
Randomize;
for I := 1 to 10 do
begin
Number := Random(3)+1;
if Number = 1 then
begin
Writeln('Wylosowano 1 ? opuszczamy pętle...');
Break;
end;
case Number of
1: Writeln('Uuu, wylosowałeś 1');
2: Writeln('No, dwa... jeszcze może być');
3: Writeln('Dobrze');
end;
end;
Readln;
end.
Jeżeli program wylosuje cyfrę 1, wyświetli stosowną informację i zakończy działanie pętli. Żaden kod umieszczony poniżej instrukcji Break
nie zostanie wykonany.
W przypadku pętli zagnieżdżonych Break
spowoduje wyjście tylko z jednej pętli. Żeby natomiast zatrzymać obie, trzeba użyć dodatkowej zmiennej.
program LoopBreak;
{$APPTYPE CONSOLE}
var
I, J : Integer;
DoStop: Boolean;
begin
for I := 1 to 10 do
begin
if DoStop then Break;
for J := 1 to 10 do
begin
DoStop := {..jakiś tam warunek..};
if DoStop then Break;
end;
end;
Readln;
end.
Zobacz też:
trochę możnaby zmodyfikować ten kod... przy wartości 1 case..of w ogóle się nie wykona, bo Break kończy działanie pętli, a case..of jest wewnątrz pętli...
jakby zamienić miejscami bloki "if..then" z "case..of" to byłoby ok :)