احتاج شرح لهذا السطر من التحدي لو تكرمتم %D8%AA%D8%B9%D9%84%D9%8A%D9%82%20%D8%AA%D9%88%D8%B6%D9%8A%D8%AD%D9%8A%202021-10-05%20130326|690x405
تحدي برمجي isMorning
ان time نص وسيضاف اليه ناتج الجملة الشرطية
َمن القوسين تعبر عن جملة شرطية والشرط موجود قبل ?
في حال تحققه فسيتم تنفيذ الجزء الاول اي ماقبل :
وفي حال عدم تحققه فسيتم تنفيذ الجزء الثاني اي مابعد :
الله يعطيك العافية هل هذا يعني إن Time كلمة محجوزة مثل Int أو string أو بس مع الجمل الشرطية نقدر نستخدم في البداية أي كلمة نبغاها؟
time اسم المتغير وقمنا بتعريفها مسبقا
فقط طريقة تعريف الجملة الشرطية
(الشرط؟ تحقق:عدم تحقق)
هي التي يجب الالتزام بها
العامل ?! يقال له Conditional أو Ternary Operator لأنه يأخذ ثلاث عناصر ليعمل.
يمكن إستعماله بدل جمل الشرط if و else في حال كنت تريد إعطاء قيمة للمتغير.
بناؤه
الـ expression: يمثل الشرط الذي نضعه.
الـ value if true: تمثل القيمة التي ستعطى للمتغير x إذا تحقق الشرط نضعها بعد الرمز ?.
الـ value if false: تمثل القيمة التي ستعطى للمتغير x إذا لم يتحقق الشرط نضعها بعد الرمز .
.
.
مثال
•إذا كانت قيمة المتغير a تساوي 1 سيتم وضع القيمة 20 في المتغير b.
•إذا كانت قيمة المتغير a لا تساوي 1 سيتم وضع القيمة 30 في المتغير b.
int a = 10;
int b = (a == 1) ?20 :30;
.
.
.
.
سنقوم بتطبيق هذا الكلام على المثال الذي في الصورة التي أرفقتها
لكن مع تبسيطه حتى نصل إلى شكل الكود الذي ارفقته
نصرح بمتغير String إسمه str
ونضع فيه القيمة إما am أو pm على حسب القيمة المخزنة في المتغير isMorning
إذا كان قيمة المتغير isMorning تساوي True نضع am وإذا كانت false نضع pm
طبعا بإستعمال Ternary Operator
ثم هذه النتيجة المخزنة في str نقوم بدمجها مع نص المتغير time
الكود موضح في الصورة
.
.
في البرمجة كل ماكان الكود مختصر كان أفضل واوضح وأكثر مقروئية
.
لهذا لست بحاجة لى تصريح بمتغير str يكفي النتيحة التي تسعود من Ternary Operator
أن أقوم بدمجها مع النص time مباشرة
الكود موضح في الصورة
.
.
في الكود السابق العلاقة أو الشرط
(isMorning == true )
يمكن إختصاره بكتابة isMorning
فقط . وستجد حتى بيئة التطوير (NetBeans مثلا) تقترح عليك هذا الأمر.
فيصبح الكود بهذا الشكل
.
.
هل من الممكن توضيح استفسارك وتحديد المزيد من المعلومات عن الدرس والمشكلة لنتمكن من مساعدتك