في الحقيقة لا يوجد خطأ ولكن ... سوف يرى قيمة المتغير
كود:
declare
v number :=3;
begin
loop
dbms_output.put_line(v);
v:= v+3;
if v>30 then
exit;
end if;
end loop;
end ;
/
كود:
3
6
9
12
15
18
21
24
27
30
شاهدنا في السطر السادس
v := v+3
يعني نزيد بثلاثة .
نستطيع ان نزيد باربعة .. بخمسة .. بعشرة بألف بمليون ...
نستطيع ان ننقص بستة او سبعة او ..... الخ
حتى اننا نستطيع ان نزيد او ننقص بكسور !!
مثلا :
v:= v+0.98
نستطيع ذلك ... جرب وانظر !!
الان .. رأينا انه في حلقة التكرار البسيطة نستطيع ان نضيف غير الواحد !
وحلقة التكرار العددية لا تستطيع ذلك !!
لا اهتم لهذه الفروقات لأني لا اعلم هل توجد طريقة لحل هذه المشكلة (ولا اعتقد
) في حلقة التكرار العددية او لا !!
ولكن اريد ان اوصل لك رسالة ..
في لغات البرمجة الاخرى , توجد لغات تعمل كل شيء جاهز , هي صراحة مريحة جدا للمبرمج , ورائعة , وفي وقت قياسي تعمل برامج كبيرة .
وتوجد لغات اخرى متخلفة جدا , وكل شيء تعمله يدوي ....
ايهما افضل ؟ هل اللغات التي تعمل لك كل شيء وانت تستخدمها او اللغة التي تجبرك على عمل كل شيء ؟
طبعا ستقول اللغة التي تريحني وتعطيني كل شيء جاهز !
انت صادق , ولكن .. في الحقيقة هي سريعة في الانتاج بطيئة في التنفيذ ! يعني لو لديك برنامج كبير , عملته بهذه اللغات الجاهزة في اقل من شهر ... سترى ان اداء البرنامج الكبير سيء !! بطيء ايضا !
طبعا هذا اذا اهتمينا في اداء البرامج , بينما لو عملناه باليدوية فسوف ننهيه في اربع شهور مثلا ولكن سنجد البرنامج صاااروخ !!
وهنالك شيء اخر !! المرونة ,,
اللغات التي تعطيك اشياء جاهزة من الممكن ان تعطيك شيء ضيق الحدود , ولا تستطيع التعديل فيه ...
اما اليدوية فسوف تعمل كل شيء بنفسك وتتحكم في كل شيء !
طبعا هذا موضوع كبير جدا , ويحتاج معلومات وفيرة لكي تفهمها .... ولكن كل ما اردت قوله , لا تتذمر من الشيء اليدوي وخاصة في عالم البرمجيات .. ولا تحكم على شيء وانت لا تعلم وتتسرع في ذلك .
الان حلقة التكرار "طالما"
while loop
لماذا نستخدمها ؟ الا تكفي جملتي التكرار تلك ؟
في الحقيقة انا اراها زائدة !!
في بعض لغات البرمجة هي مهمة جدا لكن هنا .. مجرد زيادة , لأننا نستطيع عمل مثلما تعمله هذه الحلقة , باستخدام الحلقة البسيطة !! رهيبة الحلقة البسيطة , نستغني عن الكل اذا استخدمناها فركز فيها ,,,
الان لماذا نستخدم
while ؟؟
في حلقة التكرار العددية نحن نعرف كم تكرار يلزمنا , لذا نحدد المجال ونقول من كذا الى كذا ...
طيب لو ما بنعرف ؟ ماذا نستخدم ؟ هل العددية ؟ طبعا لا !!
مثلا كرر طالما انه يوجد سجلات في الجدول مثلا ,, طبعا نعرف ان انه يوجد سجلات في جدول ما , ولكن لا نعرف كم سجل !!
لو قلت لك عشر سجلات ... فحلقة التكرار العددية تقوم بذلك , ولكن اذا لم نعرف ذلك , while وجملة التكرار البسيطة تستطيع عمل ذلك ,, لا اريد اعطائك الان أي امثلة ولكن سوف تلاحظها فيما بعد ان شاء الله .
هل تذكر تداخل الوحدات , وتداخل الشروط , الان يوجد تداخل للتكرار !!
نفس المفهوم , ونفس الفكرة .....
سوف نبدأ ان شاء الله درسنا القادم ببرنامج من العيار الثقيل ....(على ما اظن)
انتهى درس اليوم , واعدكم بدروس ستشيب رأسك حتما , فترقب !!