السلام عليكم ورحمة الله وبركاته
سأجيب بعون الله سبحانه عن السؤال الذي طرحته ثم سأنتقل الى درس اليوم .
اجابة السؤال كالتالي :
I have no idea who you are
السبب : أن كلمة "name" غير موجودة وقد يضن البعض أن الاجابة هي
Hellow Mr. Loay وهذا غير صحيح لأني لم أضع عبارة name التي في cfswitch بين # # ولو وضعتها بين # # لكانت الاجابة الصحيحة هي
Hellow Mr. Loay
حيث يقوم بعمل Process على name ويبحث عما يوافق name لكني لم اضع # # حول name فلا يجد عبارة النصية التي توافق عبارة name فيذهب الى default .
* كنت في جلسات سابقة قد تحدثت عن اللغة الشهيرة Cold Fusion MX من حيث مميزاتها وطرق تعريف المتغيرات وطرق استخدامها وأماكن تقديم الامتحانات لهذه اللغة والشركة المصنعة ومبتكرها ثم بعد هذا كله تحدثت في الجلسة الماضيه عن أدوات الشرط وسأتحدث بعون الله سبحانه في هذه الجلسة عن التالي :-
*** جمل التكرار Looping ***
كما نعلم أن جمل التكرار تستخدم لتنفيذ الاوامر أكثر من مرة وهي مهمة جدا ويوجد منها في لغة (CF MX) الجمل التاليه:
1- Index Loops
2- Conditional Loops
3- Query Loops
4- List Loops
سأبدأ بعون الله سبحانه بأول جمل التكرار وهي Index Loops :
تستعمل هذه الجملة لتكرار تنفيذ عملية أكثر من مرة وهي أبسط أنواع التكرار . لنأخذ مثال على هذا النوع من أنواع التكرار , فمثلا أريد طباعة الأعداد من 1 الى 10
*****************************
قبل ان اضع حل السؤال بــــ CF سنرى حل السؤال بـــ JAVA و C++ وهو كالتالي:
For(i=1;i<=10;i++)
Cout<<i;
**************************************
وان كان بـــــ Visual Basic تتضح الفكرة أكثر وهو كالتالي:
For i=1 to 10 Print i Next i
***********************************************
أما في CF وهذا ما يهمنا فهو كالتالي:
" نظرا لان الصور لم تظهر هنا ارجو النظر الى الملف المرفق"
شرح الكود: في السطر الثامن نلاحظ طريقة التعريف حيث بدأنا بـــــ <cfloop ثم نوع loop (حيث استخدمت النوع الاول وهو index loop ) ثم القيمة البدائية والقيمة النهائية.
في السطر التاسع : استخدام output لاظهار النتيجة.
في السطرالعاشر والأخير انهاء التكرار(loop ).
*ملاحظة: نلاحظ في CF لم نضع مقدار الزيادة(step) لأن default هو 1 وهذا نفس الشئ في Visual Basic .
**مثال اخر:- أريد طباعة الاعداد من 10 الى 2 تناقصيا بمقدار 2 .
*** بــــ VB كالتالي:
For f=10 to 2 step -2 Print f Next f
*** بــــــــــــ CF كاتالي:
" نظرا لان الصور لم تظهر هنا ارجو النظر الى الملف المرفق"
ملاحظة: كما أننا في VB لا ننسى في for بوضع next , فنحن أيضا لا ننسى في for في CF بوضع <\cfloop> .
**** الشكل العام للـــــــ index loop كالتالي: ***
<cfloop type of loop from to step > ------------ ----------- --------- <\cfloop>
** ملاحظة مهمة: نلاحظ أننا في CF لم نحدد نوع المتغير وذلك لان CF كما ذكرت في جلسات سابقة هي type less أي تقوم بتعريف نوع المتغير تلقائيا وهذا من مميزاتها.
أنصح بالرجوع الى درس المتغيرات في CF لفهم هذه النقطة حيث قمت بشرحها مفصلا.
*سأنتقل الان الى النوع الثاني من أنواع التكرار وهو Conditional Loop
المقصود به اجراء عملية التكرار عند تحقق شرط معين. ولكي تتضح الصورة أكثر لننطلق الى لغة JAVA فكلنا يعلم أو جزء منا يعلم أن عبارة التكرار باستخدام عبارة While ….loop تستخدم لتكرار العمليات التي تعتمد على شرط معين وغير معروف عدد مرات التكرار وتأخذ الصورة التالية:
While(condition)
{
Statements
}وفي هذه الصورة يتم اختبار الشرط اذا كان صحيحا يتم تنفيذ statements ويستمر التنفيذ حتى يصبح الشرط غير صحيح.
وهذا نفس الشئ في CF لنرى المثال التالي:
" نظرا لان الصور لم تظهر هنا ارجو النظر الى الملف المرفق"
شرح الكود: في السطر السابع يتم تعريف متغير اسمه Num ووضع فيه قيمة وهي رقم 4 وهو طبعا من نوع Integer ولا داعي لتحديد النوع لان CF هي من تقوم بهذه المهمة .
في السطر الثامن يتم تعريف متغير اخر اسمه I ووضع فيه قيمة 0 .
في السطر التاسع أجرينا عملية التكرار باستخدام Conditional Loop وكان الشرط صحيحا ما دامت قيمة I أصغر أو تساوي قيمة Num .
في السطر العاشر كنا نزيد قيمة I بمقدار واحد .
في السطر الحادي عشر نطبع قيمة I .
في السطر الثاني عشروالأخير ننهي التكرار.
ملاحظة: نلاحظ في السطر الحادي عشر أن I وضعناها مابين # # لكي يطبع قيمة I في كل مرة وليس حرف I .
ملاحظة: تلاحظ أخي أني وضعت <Br> بعد output وذلك لنزول سطر جديد في كل مرة يطبع مثل cout<<endl; في C++ .
النتيجة : طباعة الارقام من 1 الى 5 .
*ملاحظة : المقصود بـــــ LTE هو اصغر أو يساوي . (هذه الرموز شرحت كاملة في الجلسة الماضية)
وبهذا نكون قد أنهينا جلسة اليوم بالتعرف على نوعين من أربعة أنواع من جمل التكرار في Cold Fusion MX .
والسلام عليكم ورحمة الله وبركاته