break و continue
کنترل دقیق حلقهها با break، continue و خروج زودهنگام با exit.
گاهی میخواهید قوانین را بشکنید!
سه ابزار کنترلی دارید:
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 | رویه/برنامه را ترک کن |
این مبحث بخشی از دوره آموزش کامل پاسکال است.