break و continue

کنترل دقیق حلقه‌ها با break، continue و خروج زودهنگام با exit.

گاهی می‌خواهید قوانین را بشکنید!

سه ابزار کنترلی دارید:

break — توقف حلقه

var i: integer;
begin
  for i := 1 to 100 do
  begin
    if i * i > 500 then
    begin
      writeln('اولین عدد که مربعش از ۵۰۰ بزرگ‌تر است: ', i);
      break;   { دیگر ادامه نده }
    end;
  end;
end.

continue — رد کردن دور جاری

var i: integer;
begin
  for i := 1 to 10 do
  begin
    if i mod 2 = 0 then
      continue;   { زوج‌ها را رد کن }
    write(i, ' ');  { فقط فردها چاپ می‌شوند }
  end;
  writeln;   { 1 3 5 7 9 }
end.

مثال: جستجو در «آرایه»

var
  i, target: integer;
  found: boolean;
begin
  target := 23;
  found := false;
  for i := 1 to 100 do
  begin
    if i = target then
    begin
      found := true;
      break;   { پیدا شد، دیگر نگرد }
    end;
  end;
  if found then
    writeln('پیدا شد در ', i)
  else
    writeln('پیدا نشد');
end.

exit — خروج کامل

var i: integer;
begin
  for i := 1 to 10 do
  begin
    if i = 5 then
    begin
      writeln('اینجا تمام می‌کنیم!');
      exit;   { کل برنامه تمام }
    end;
    writeln(i);
  end;
  writeln('این خط هرگز اجرا نمی‌شود');
end.
در توابع، exit(مقدار) هم مقدار برگشتی را تعیین می‌کند — بعداً می‌بینید!

break در حلقه تودرتو

break فقط داخلی‌ترین حلقه را می‌شکند:
for i := 1 to 3 do
begin
  for j := 1 to 3 do
  begin
    if j = 2 then break;   { فقط حلقه j می‌شکند }
    write(i, ',', j, ' ');
  end;
end;
{ خروجی: 1,1 2,1 3,1 }

خلاصه

دستوراثر
breakحلقه داخلی فوراً تمام
continueبه دور بعدی حلقه بپر
exitرویه/برنامه را ترک کن

این مبحث بخشی از دوره آموزش کامل پاسکال است.

ابزارهای مرتبط