الاثنين، 8 سبتمبر 2014

تعلم AS3 -جزء1- الدرس 3 [الدوال الشرطية]




السلام عليكم و رحمة الله و بركاته
مرحبا بكم في هذا الدرس الجديد من سلسلة دروس تعلم الاكشن سكربت 3 و سنتحدث في هذا الدرس عن الدوال الشرطية 
من الجيد فهم الدروس السابقة :


If statement




_____________________________________________________

لقد رأينا في الدرس السابق طريقة التعامل مع الأعداد و المتغيرات العددية و مختلق العمليات التي يمكننا القيام بها 
في هذا الدرس سوف نرى كيفية تجريب محتوى تلك المتغيرات و سنقوم بتنفيذ أو لا  مجموعة أكواد حسب قيمة تلك المتغيرات .
كما ترون فالدوال الشرطية ضرورية جدا في عالم البرمجة. 


مفاهيم أساسية:
 كما سبق و قلنا الشرط هو لتجريب محتوى متغير او مجموعة متغيرات ثم نقوم بتنتفيذ اكواد حسب تلك القيم بهذا  الشكل
اذا (شرطي == صحيح) اذن نفذ هذا الكود 
و إلا نفذ هذا الكود
في دالة شرطية يمكنني تجريب القيم حسب نوعها, مثلا يمكننا مقارنة  عدد اذا كان اكبر او يساوي عدد اخر أي اننا نبحث عن علاقة بين العددين او متغيرين


العاملالمعنى عند مقارنة قيم العدديةالمعنى عند السلاسل الحرفية
<أصغر منمكانه في الحروف قبل 
<أكبر منمكانه في الحروف بعد
<=أصغر من أو يساويقبل او في نفس ترتيب الاحرف
>=أكبر من او يساويبعد او له نفس ترتيب الاحرف
==يساوينفس
!= لا يساويمختلف
===يساوي تمامايساوي تماما
!==مختلف تمامامختلف تماما
 _____________________________________________________________________

 الفرق بين  =و == و === :
في الدرس السابق رأينا طريقة اعطاء قيمة الى متغير عن طريق "=" 
;var a:int = 5 
أي "=" تستعمل لل affectation فقط !
أما "==" و "===" فهي تستعمل للمقارنة!
الفرق بينهما هو :
فلنفرض أننا نملك متغيرين, الأول سلسلة أحرف قيمته "3.14" و الثاني عدد حقيقي قيمته 3.14
اذا قارنا القيمتين عن طريق "==" فالمترجم سيحتسب القيمة صحيحة لانه يقوم بتحويل "3.14" الى قيمة عددية و يقارن ليجدهما متساويين
 اذا قارنا القيمتين عن طريق "===" فالمترجم سيقارن القيمتين + النوع 
و بما ان النوع مختلف فواحد Number و الاخر String ف النتيجة هي خطأ 
____________________________________________________________________

العوامل المنطقية (opération logique):


في السابق العوامل المستعمة لمقارنة قيمتين, أما العوامل المنطقية فهي تستعمل لربط عدة شروط  و هذا ما يمكننا مثلا لتجريب شرط اذا كانت قيمة محصورة بين عدد و  عدد اخر
نأخذ نفس المثال السابق
  :عددي محصور بين 0 و 10 يعني -
عددي أكبر من 0
عددي أصغر من 10
تكتب على هذا الشكل:
 (عددي > 0  و عددي <10)
بالانجليزية 
myNumber > 0 AND  myNumber < 10
 في الفلاش هذه هي الروابط المنطقية الموجودة
  و تعني "لا" المنطفي  : !
و تعني "و" المنطقي :&&
و تعني "أو" المنطقي : || 
شرح:
لما نقول( ألفا و بيتا) فالنتجية تكون صحيحة فقط و فقط اذا كان ألفا صحيح و بيتا صحيح
اذا كان ألفا خطأ و النتيجة ستكون خطأ , نفس الشئ اذا كان بيتا خطأ 
لما نقول (ألفا  أوبيتا) ف لكي تكون النتيجة صحيحة يكفي ان يكون  إما الفا أو بينا صحيح 
لما نكتب (!الفا)  فالقيمة تكون صحيحة اذا كان الفا خطأ ف "!" تعكس القيمة  و عكس خطأ هو صحيح
________________________________________________________________________


 :If ..else statement syntax
الان سنتكلم عن طريقة كتابة الشروط في الاكشن سكربت 3 
if(condition)
{
             //code1
            //في حالة تحقق الشرط
            // condition == true 
}
else
{
       //code2
       //condition == false
}
  تعني اذا تحقق الشر : if (condition) 
     في حالة لم يتحقق يتم تنفيذ كود 2:else 
أمثلة
var myLife:int= 0; 
if(myLife == 0 )
      trace('You are died');

سيكتب لنا  You are died
لان قيمة المتغير تساوي 0 يعني الشرط محقق
هناك ملاحظتين :
الاولى لم نكتب لم نفتح الوسام {}
else و الثاني لا توجد
عدم وجود else  يعني ببساطة اذا كانت القيمة مختلفة عن 0 فلا تفعل أي  شئ لاننا لم نخصص لها كود
اما بخصوص الاوسمة فهو يأخذ اول كود ياتي بعد الشرط اما الباقي فيعتبر خارج الجملة الشرطية 
مثلا

var myLife:int = 0;
if(myLife == 0)
      trace("You are died");
else
       trace("You are alive");
trace("startimes");
 you are diedنعرف ان القيمة تساوي 0 يعني الشرط محقق  يعني سيكتب لنا 
   لن يتم تنفيذ كودها و هو السطر الاولelse  و في هذه الحالة  
  سيتم كتابتها لانها خارج الجملة startimes و هذا ما يعني ان  
_____________________________________________________________________



طريقة أخرى لكتابة جملة شرطية ذات سطر واحد

عوضا ان نكتب
if(myLife == 0)
        myLife == 100;
else 
        myLife = myLife + 50;
يمكننا اختصارها الى
 MyLife = (myLife == 0)  ? 100:  myLife + 50;


_______________________________________________


 If.. else IF:

مثلما كنا نفعل في السابق بامكاننا مقارنة متغير مع عدة قيم لتنفيذ اكواد مختلفة و تكتب على هذا الشكل 
if(condition)
{
}
else if(condition 2)
{
}
else if(c3)
{
}
..
...
..
else
{
}
 مثال :

var myNumber:int= 1;

if(myNumber <0)
       trace(myNumber +" < 0");

else if (myNumber == 0)
     trace(myNumber + " == 0");

elsetrace(myNumber +" >0");
  نقارن المتغير اذا كان اصغر من 0. اذا كان الشرط غير محقق نقارن اذا كان يساوي 0   . و اذا كان غير محقق فحتما هو موجب
________________________________________________________________________


:SWITCH  .. CASE

 تخيل اننا  نملك العديد من  الجمل الشرطية لنفس المتغير

if(c1)
{
}
else if(c2)
{
}
....
else if(condition n)
{
}
سيكون الكود طويل و غير أنيق
   هي الحل حيث تبسط لنا الكود الى هذا الشكلswitch  
switch(variable)
 {
       caseVALUE1:code1;break;
       case VALUE2: code2;break;
     //    ... case valueN: code N;break;
     default: code Default
}
و تقرأ هكذا 
  breakاذا كان المتغير يساوي القيمة 1 فنفذ الكود 1   ثم اخرج عند الوصول الى 
   
و الا فانه سيكمل تنفيذ الاكواد التي تأتي بعد الكود الحاليbreak يجب دائما كتابة 
أي الكود 2 و 3 .. الخ
  في حالة وجوده لأنه غير اجباري default في حالة  ما اذا كان المتغير لا يساوي أي قيمة فالمترجم سينفذ الكود الموجود في  
مثال
switch(myColor)
{
        case"red"  :    trace("My color is red");    break;
        case"blue" :   trace("My Color is blue");  break;
       case"green":   trace("My color is green"); break;
       default:             trace("Other colors");

ليست هناك تعليقات:

إرسال تعليق


جميع الحقوق محفوظة لمدونة 2014-2015 as3arabic |