Break و Continue في الحلقات التكرارية
#1
السلام عليكم

بما أن درس الحلقات لم يتطرق لهدا الاجرائين اغتنمت الفرصة لأضع شرحا مبسطا حول استعمالهما في

الحلقات التكرارية

[FONT="Arial Black"]الاجراء Break

يستخدم هدا الاجراء للخروج الفوري من الحلقة التكرارية وغالبا عند حدوت شرط معين

[FONT="Arial Black"]الاجراء Continue

يستخدم هدا الاجراء للعودة الى بداية الحلقة و مواصلتها وليس جعل الحلقة تبدأ من أول عنصر

وهده أمثلة للتوضيح

PHP كود :
procedure TForm1.Button1Click(SenderTObject);
var 
i:Integer;
begin
 
for i:= 1 to 5 do
     
begin
      
if 3 then
       
Continue;
       
ShowMessage('Le Nombre est'IntToStr(i));
     
end;
end

PHP كود :
procedure TForm1.Button1Click(SenderTObject);
var 
i:Integer;
begin
i
:=0;
    while 
i<10 do
     
begin
     Inc
(i);
      if 
1 then
       
Continue;
       
ShowMessage('Le Nombre est'IntToStr(i));
     
end;
end

PHP كود :
procedure TForm1.Button1Click(SenderTObject);
var 
i:Integer;
begin
i
:=0;
repeat
      Inc
(i);
      if 
1 then
       
Continue;
       
ShowMessage('Le Nombre est'IntToStr(i));
       
until i=10;
end

وهدا مثال ل Break

PHP كود :
procedure TForm1.Button2Click(SenderTObject);
var 
i:Integer;
begin
 
for i:= 1 to 5 do
     
begin
      
if 3 then
       
Break;
       
ShowMessage('Le Nombre est'IntToStr(i));
     
end;
end
لا اله الا أنت سبحانك اني كنت من الضالمين
الرد
#2
بارك الله فيك، وأيضا:
الإجراء Exit
للخروج الفوري من الإجراء الحالي Procedure مثاله:

PHP كود :
procedure TForm1.Button1Click(SenderTObject);
var
  
i:Integer;
begin
i
:=0;
repeat
  Inc
(i);
  if 
5 then
   
Exit;
   
ShowMessage('Le Nombre est 'IntToStr(i));
   
until i=10;
end

Halt للخروج غير الطبيعي من البرنامج بأكمله، مثال:
PHP كود :
procedure TForm1.Button1Click(SenderTObject);
var
  
i:Integer;
begin
i
:=0;
repeat
  Inc
(i);
  if 
5 then
   Halt
;
   
ShowMessage('Le Nombre est 'IntToStr(i));
   
until i=10;
end
بالتوفيق.
الرد
#3
شكرا لكم اخوتي ,,

أخي me&delphi

أليس الإجراء Continue يجب قبلهـ استخدام Break ؟؟

إذا كانت الإجابة بـ لا ,, فما الفائدة من هذا الإجراء ؟

- عفوا ولكن سطر شرح الكنتينيو لم يتضح لي -

شكرا
شكوت إلى وكيع سوء حفظي ... فأرشدني إلى ترك المعاصي
وأخــبـرنـي بــأن الـعـلـم نـور ... ونـور الله لا يـهدى لـعـاصي
الرد
#4
شكرا لكما اخواني الكرآم على التوضيح,,

لكن ال halt, ما الفرق بينها و بين ال termniate ؟

لم الآحظ فرق,,

ثم ماذا تقصت ب
إقتباس : للخروج غير الطبيعي من البرنامج
بارك الله فيك؟

شكرا لكما Smile
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد
#5
أخي Al-MOB4RM3G

للفائدهـ انظر :

http://www.delphi4arab.net/forum/showthread.php?tid=525

السلام عليكم
شكوت إلى وكيع سوء حفظي ... فأرشدني إلى ترك المعاصي
وأخــبـرنـي بــأن الـعـلـم نـور ... ونـور الله لا يـهدى لـعـاصي
الرد
#6
السلام عليكم
إقتباس :أليس الإجراء Continue يجب قبلهـ استخدام Break ؟؟
كلا، كل واحدة لها دورها.
Break لإيقاف الحلقة والخروج منها فورا.
Continue لتجاوز الأوامر التي بعدها والاستمرار في الحلقة.

إقتباس :ثم ماذا تقصت بالخروج غير الطبيعي من البرنامج
الخروج الطبيعي يتم بتشغيل الحدث OnClose وOnDestroy وتحرير ما يجب تحريره و...
الخروج غير الطبيعي من البرنامج إيقافه مباشرة دون إجراء أي شيء كأنك استعملت Task Manager
بالتوفيق.
الرد
#7
اها, نعم,, بارك الله لكما,,

الآن الأمر وآضح تمام,,, Smile
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد
#8
بارك الله فيكم
لا اله الا أنت سبحانك اني كنت من الضالمين
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم