Programowanie w języku Delphi

Break

  • 2012-06-15 14:41
  • 1 komentarz
  • 3916 odsłon
  • Oceń ten tekst jako pierwszy
Break
Moduł: System

procedure Break;


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ż:

1 komentarz

milosz28 2008-07-24 12:51

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 :)