تمرين - تقييم تعبير
- 11 دقائق
يستخدم منطق القرار لإنشاء مسارات بديلة من خلال التعليمات البرمجية الخاصة بك، حيث يعتمد القرار حول المسار الذي يجب اتباعه على تقييم التعبير. على سبيل المثال، قد تكتب بعض التعليمات البرمجية التي تنفذ أحد المسارين استنادا إلى إدخال المستخدم. إذا أدخل المستخدم الحرف "a"، فستنفذ التعليمات البرمجية كتلة تعليمة برمجية واحدة. إذا أدخلوا الحرف "b"، فستنفذ التعليمات البرمجية كتلة تعليمات برمجية مختلفة. في هذا المثال، تتحكم في مسار التنفيذ استنادا إلى القيمة المعينة لسلسلة. تحدد التعليمات البرمجية مسار تنفيذ استنادا إلى تعبير، وكيفية تقييم هذا التعبير، والمنطق الأساسي المستخدم لتعريف المسارات.
يعد فحص كيفية إنشاء تعبير وتقييمه مكانا جيدا للبدء.
ما هو التعبير؟
يقصد بالتعبير هو أي مجموعة من القيم (حرفية أو متغيرة) وعوامل وأساليب تُرجع قيمة واحدة. العبارة هي تعليمات كاملة في C#، وتتضمن العبارات تعبيرا واحدا أو أكثر. على سبيل المثال، تحتوي العبارة التالية ifعلى تعبير واحد يرجع قيمة واحدة:
if (myName == "Luiz")
ربما كنت تفكر في أن القيمة التي تم إرجاعها بواسطة تعبير ستكون رقما أو ربما سلسلة. صحيح أن مطوري التطبيقات يستخدمون أنواعا مختلفة من التعبيرات لأغراض مختلفة. في هذه الحالة، عند تطوير عبارة if تحديد، ستستخدم تعبيرا يرجع إما true أو false. يشير المطورون إلى هذا النوع من التعبير كتعبير منطقي. عندما تتضمن التعليمات البرمجية تعبيرا منطقيا، تكون القيمة المرجعة دائما قيمة واحدة true أو false قيمة.
تعد التعبيرات المنطقية مهمة لأن التعليمات البرمجية الخاصة بك يمكنها استخدام هذه التعبيرات لتحديد كتلة التعليمات البرمجية المراد تنفيذها.
هناك العديد من أنواع عوامل التشغيل المختلفة التي يمكنك استخدامها داخل تعبير منطقي. على سبيل المثال، تستخدم العبارة if أعلاه عامل تشغيل == المساواة للتحقق مما إذا تم تعيين متغير سلسلة إلى قيمة معينة. سيعتمد عامل التشغيل الذي تختاره على مسارات التعليمات البرمجية المتوفرة، والشروط المقترنة بالمسارات، ومنطق التطبيق الأساسي.
تقييم المساواة وعدم المساواة
أحد تقييمات التعليمات البرمجية الأكثر شيوعا هو التحقق لمعرفة ما إذا كانت قيمتان متساويتين. عند التحقق من المساواة، ستحدد موقع عامل تشغيل == المساواة بين القيمتين اللتين يتم التحقق منهما. إذا كانت القيم الموجودة على أي من جانبي عامل تشغيل المساواة مكافئة، فسيرجع trueالتعبير . وإلا، فإنه سيعود false.
وعلى العكس من ذلك، قد تحتاج أيضا إلى التحقق مما إذا كانت قيمتان غير متساويتين. للتحقق من عدم المساواة، ستستخدم عامل عدم != المساواة بين القيمتين.
قد تتساءل لماذا تحتاج إلى عوامل المساواة وعدم المساواة على حد سواء. سيصبح السبب أكثر وضوحًا عندما تتعلم كيفية إنشاء عبارات متفرعة والبدء في كتابة تعليمة برمجية للعالم الحقيقي. يسمح لك عاملان يؤديان مهام تناقضية بأن تكون أكثر تعبيرًا ومتحدًا
حان الوقت الآن لإعداد بيئة الترميز الخاصة بك والبدء في كتابة التعليمات البرمجية التي تقيم التعبيرات المنطقية.
إعداد بيئة الترميز الخاصة بك
تتضمن هذه الوحدة أنشطة عملية ترشدك خلال عملية إنشاء التعليمات البرمجية التوضيحية وتشغيلها. يتم تشجيعك على إكمال هذه الأنشطة باستخدام Visual Studio Code كبيئة تطوير. سيساعدك استخدام Visual Studio Code لهذه الأنشطة على أن تصبح أكثر راحة في كتابة التعليمات البرمجية وتشغيلها في بيئة مطور يستخدمها المحترفون في جميع أنحاء العالم.
فتح Visual Studio Code.
يمكنك استخدام القائمة Windows (أو مورد مكافئ لنظام تشغيل آخر) لفتح Visual Studio Code.
في قائمة Visual Studio Code File ، حدد Open Folder.
في مربع الحوار فتح مجلد ، انتقل إلى مجلد سطح مكتب Windows.
إذا كان لديك موقع مجلد مختلف حيث تحتفظ بمشاريع التعليمات البرمجية، يمكنك استخدام موقع المجلد هذا بدلا من ذلك. لهذا التدريب، الشيء المهم هو أن يكون لديك موقع يسهل تحديد موقعه وتذكره.
في مربع الحوار فتح مجلد ، حدد تحديد مجلد.
إذا رأيت مربع حوار أمان يسألك عما إذا كنت تثق بالمؤلفين، فحدد نعم.
في قائمة Visual Studio Code Terminal ، حدد New Terminal.
لاحظ أن موجه الأوامر في لوحة Terminal يعرض مسار المجلد للمجلد الحالي. على سبيل المثال:
C:\Users\someuser\Desktop>إشعار
إذا كنت تعمل على جهاز الكمبيوتر الخاص بك بدلا من بيئة الاختبار المعزولة أو البيئة المستضافة وأكملت وحدات Microsoft Learn الأخرى في سلسلة C# هذه، فربما تكون قد أنشأت بالفعل مجلد مشروع لعينات التعليمات البرمجية. إذا كان الأمر كذلك، يمكنك تخطي الخطوة التالية، والتي تستخدم لإنشاء تطبيق وحدة تحكم في مجلد TestProject.
في موجه الأوامر Terminal، لإنشاء تطبيق وحدة تحكم جديد في مجلد محدد، أدخل المطالبة التالية:
dotnet new console -o ./CsharpProjects/TestProjectيستخدم أمر .NET CLI هذا قالب برنامج .NET لإنشاء مشروع تطبيق وحدة تحكم C# جديد في موقع المجلد المحدد. ينشئ الأمر مجلدات CsharpProjects وTestProject نيابة عنك، ويستخدم TestProject كاسم لملفك
.csproj.إذا تم عرض رسالة تخبرك بأن الملفات موجودة بالفعل، فتابع الخطوات التالية. ستقوم بإعادة استخدام ملفات المشروع الموجودة.
في طريقة عرض EXPLORER، قم بتوسيع المجلد CsharpProjects .
يجب أن تشاهد مجلد TestProject وملفين، ملف برنامج C# المسمى Program.cs وملف مشروع C# يسمى TestProject.csproj.
في قائمة Visual Studio Code File ، حدد Open Folder.
في مربع الحوار فتح مجلد ، حدد المجلد CsharpProjects ، ثم حدد تحديد مجلد.
في طريقة عرض EXPLORER، قم بتوسيع المجلد TestProject، ثم حدد Program.cs.
حذف أسطر التعليمات البرمجية الموجودة.
ستستخدم مشروع وحدة تحكم C# هذا لإنشاء نماذج التعليمات البرمجية وبنائها وتشغيلها أثناء هذه الوحدة النمطية.
أغلق لوحة Terminal.
استخدام عامل تشغيل المساواة
تأكد من فتح Visual Studio Code وعرضه Program.cs في لوحة المحرر.
إشعار
يجب أن يكون Program.cs فارغا. إذا لم يكن كذلك، فحدد جميع أسطر التعليمات البرمجية واحذفها.
اكتب التعليمات البرمجية التالية في محرر التعليمات البرمجية Visual Studio.
Console.WriteLine("a" == "a"); Console.WriteLine("a" == "A"); Console.WriteLine(1 == 2); string myValue = "a"; Console.WriteLine(myValue == "a");في قائمة Visual Studio Code File ، حدد Save.
يجب حفظ ملف Program.cs قبل إنشاء التعليمات البرمجية أو تشغيلها.
في لوحة EXPLORER، لفتح Terminal في موقع مجلد TestProject، انقر بزر الماوس الأيمن فوق TestProject، ثم حدد Open in Integrated Terminal.
سيتم فتح لوحة Terminal. يجب أن تتضمن المحطة الطرفية موجه أوامر يظهر أن المحطة الطرفية مفتوحة لموقع مجلد TestProject.
في موجه الأوامر Terminal، لتشغيل التعليمات البرمجية، اكتب dotnet run ثم اضغط على Enter.
إشعار
إذا رأيت رسالة تقول "تعذر العثور على مشروع لتشغيله"، فتأكد من أن موجه الأوامر Terminal يعرض موقع مجلد TestProject المتوقع. على سبيل المثال:
C:\Users\someuser\Desktop\csharpprojects\TestProject>يجب أن ترى الناتج التالي.
True False False True
تحسين التحقق من مساواة السلسلة باستخدام أساليب المساعد المضمنة في السلسلة
قد تتفاجأ بأن السطر Console.WriteLine("a" == "A"); يخرج false. عند مقارنة السلاسل، تكون الحالة مهمة.
أيضًا، ضع في اعتبارك هذا السطر من التعليمة البرمجية:
Console.WriteLine("a" == "a ");
هنا قمت بإضافة حرف مسافة في نهاية السلسلة. سيؤدي هذا التعبير أيضا إلى إخراج false.
في بعض الحالات، قد يكون وجود حرف مسافة قبل النص أو بعده مقبولا تماما. ومع ذلك، إذا كنت بحاجة إلى قبول تطابق غير دقيق، يمكنك "تدليك" البيانات أولا. يعني "تجميع" البيانات أنك تقوم ببعض التنظيف قبل إجراء مقارنة للمساواة.
على سبيل المثال، ضع في اعتبارك الحالة عند جمع إدخال المستخدم داخل حلقة. بعد إدخال كل قيمة، يمكنك تزويد المستخدم بمطالبة لتحديد ما إذا كان يريد المتابعة، مثل Do you want to continue (Y/N)?. إذا أراد المستخدم المتابعة، فمن المحتمل أن يدخل إما y أو Y. ستحتاج إلى أن تفسر التعليمات البرمجية كلا القيمتين بالتساوي، على الرغم من أنها y لا تعادل Y.
قبل التحقق من قيمتي سلسلة للمساواة، خاصة عندما يتم إدخال قيمة واحدة أو كلتيهما من قبل مستخدم، يجب عليك:
- التأكد من أن كلا الجملتين جميعهما أحرف كبيرة أو جميعهما أحرف صغيرة باستخدام الأسلوب المساعد
ToUpper()أوToLower()على أي قيمة سلسلة. - قم بإزالة أي مسافات فارغة بادئة أو لاحقة
Trim()باستخدام أسلوب المساعد على أي قيمة سلسلة.
يمكنك تحسين التحقق من المساواة السابقة عن طريق ربط هاتين الطريقتين المساعدتين على كلتا القيمتين، كما هو موضح في قائمة التعليمات البرمجية التالية:
استبدل التعليمات البرمجية في محرر Visual Studio Code بالتعليمات البرمجية التالية:
string value1 = " a"; string value2 = "A "; Console.WriteLine(value1.Trim().ToLower() == value2.Trim().ToLower());احفظ ملف التعليمات البرمجية، ثم استخدم Visual Studio Code لتشغيل التعليمات البرمجية الخاصة بك.
لاحظ أنه عند تشغيل التعليمات البرمجية هذه المرة، فإنه يقوم بإخراج True.
استخدام عامل تشغيل عدم المساواة
استخدم عامل تعليق السطر
//للتعليق على كافة التعليمات البرمجية من الخطوة السابقة.اكتب التعليمات البرمجية التالية في محرر التعليمات البرمجية Visual Studio.
Console.WriteLine("a" != "a"); Console.WriteLine("a" != "A"); Console.WriteLine(1 != 2); string myValue = "a"; Console.WriteLine(myValue != "a");احفظ ملف التعليمات البرمجية، ثم استخدم Visual Studio Code لتشغيل التعليمات البرمجية الخاصة بك.
يجب أن ترى الناتج التالي.
False True True False
كما تتوقع، فإن النتيجة عند استخدام عامل عدم المساواة هي عكس ما رأيت عند استخدام عامل المساواة. وهذا يعني أن التعليمات البرمجية الخاصة بك ستتفرع بطريقة معاكسة أيضا، والتي يمكن أن تكون بالضبط ما تريده.
تقييم المقارنات
عند العمل مع أنواع البيانات الرقمية، قد تحتاج إلى تحديد ما إذا كانت القيمة أكبر أو أصغر من قيمة أخرى. استخدم عوامل التشغيل التالية لتنفيذ هذه الأنواع من المقارنات:
- أكبر من
> - أصغر من
< - أكبر من أو يساوي
>= - أصغر من أو يساوي
<=
وبطبيعة الحال، == ستعمل عوامل التشغيل و != التي استخدمتها لمقارنة قيم السلسلة أعلاه أيضا عند مقارنة أنواع البيانات الرقمية.
استخدام عوامل المقارنة
استخدم عامل تشغيل
//تعليق السطر للتعليق على كافة التعليمات البرمجية من المهمة السابقة.اكتب التعليمات البرمجية التالية في محرر التعليمات البرمجية Visual Studio.
Console.WriteLine(1 > 2); Console.WriteLine(1 < 2); Console.WriteLine(1 >= 1); Console.WriteLine(1 <= 1);احفظ ملف التعليمات البرمجية، ثم استخدم Visual Studio Code لإنشاء التعليمات البرمجية وتشغيلها.
ينبغي أن تشاهد المخرج التالي:
False True True True
الأساليب التي ترجع قيمة شرطية
ترجع بعض الأساليب قيمة منطقية (true أو false). في التمرين التالي، ستستخدم أسلوبا مضمنا من String الفئة لتحديد ما إذا كانت سلسلة أكبر تحتوي على كلمة أو عبارة معينة مهمة لتطبيقك أم لا.
إشعار
تحتوي بعض أنواع البيانات على أساليب تؤدي مهام أداة مساعدة مفيدة.
String يحتوي نوع البيانات على العديد من هذه. ترجع العديد منها قيمة شرطية بما في ذلك Contains() وStartsWith() وEndsWith(). يمكنك معرفة المزيد عنها في وحدة Microsoft Learn "معالجة البيانات الأبجدية الرقمية باستخدام أساليب فئة السلسلة في #C".
استخدام أسلوب يرجع قيمة منطقية
استخدم عامل تعليق السطر
//للتعليق على كافة التعليمات البرمجية من الخطوة السابقة.اكتب التعليمات البرمجية التالية في محرر التعليمات البرمجية Visual Studio.
string pangram = "The quick brown fox jumps over the lazy dog."; Console.WriteLine(pangram.Contains("fox")); Console.WriteLine(pangram.Contains("cow"));احفظ ملف التعليمات البرمجية، ثم استخدم Visual Studio Code لإنشاء التعليمات البرمجية وتشغيلها.
يجب أن ترى الناتج التالي.
True False
ما هو الرفض المنطقي؟
يشير مصطلح "النفي المنطقي" إلى عامل تشغيل !الرفض الأحادي . يطلق بعض الأشخاص على عامل التشغيل هذا اسم "ليس عامل التشغيل". عند وضع ! عامل التشغيل قبل تعبير شرطي (أو أي تعليمة برمجية يتم تقييمها إلى إما true أو false)، يجبر التعليمات البرمجية الخاصة بك على عكس تقييمها للمعامل. عند تطبيق الرفض المنطقي، ينتج true التقييم ، إذا تم تقييم معامل إلى false ، و false ، إذا تم تقييم معامل إلى true.
فيما يلي مثال قد يساعدك على رؤية الاتصال بين هذه الأفكار. ينتج عن سطري التعليمات البرمجية التاليين نفس النتيجة. السطر الثاني هو أكثر إحكامًا.
// These two lines of code will create the same output
Console.WriteLine(pangram.Contains("fox") == false);
Console.WriteLine(!pangram.Contains("fox"));
استخدام عامل تشغيل النفي المنطقي
استخدم عامل تعليق السطر
//للتعليق على كافة التعليمات البرمجية من الخطوة السابقة.اكتب التعليمات البرمجية التالية في محرر التعليمات البرمجية Visual Studio.
string pangram = "The quick brown fox jumps over the lazy dog."; Console.WriteLine(!pangram.Contains("fox")); Console.WriteLine(!pangram.Contains("cow"));احفظ ملف التعليمات البرمجية، ثم استخدم Visual Studio Code لإنشاء التعليمات البرمجية وتشغيلها.
يجب أن ترى الناتج التالي.
False True
عامل عدم المساواة مقابل الرفض المنطقي
يتضمن عامل عدم != المساواة حرفا ! ، ولكن لا ينبغي الخلط بينه وبين الرفض المنطقي. يعود true عامل عدم المساواة إذا لم تكن معاملاته متساوية، ويرجع false إذا كانت المعاملات متساوية. بالنسبة إلى معاملات الأنواع المضمنة، ينتج التعبير x != y نفس نتيجة التعبير !(x == y) (مثال على الرفض المنطقي).
يوضح نموذج التعليمات البرمجية التالي استخدام != عامل التشغيل:
int a = 7;
int b = 6;
Console.WriteLine(a != b); // output: True
string s1 = "Hello";
string s2 = "Hello";
Console.WriteLine(s1 != s2); // output: False
خلاصة
إليك المغزى الحقيقي الذي تعلمته عن تقييم التعبيرات الشرطية حتى الآن:
- هناك العديد من أنواع التعبيرات المختلفة التي يتم تقييمها إما
trueأوfalse. - تقييم المساواة باستخدام العامل
==. - يتطلب تقييم مساواة السلاسل مراعاة إمكانية أن يكون للسلاسل حالة مختلفة ومسافات بادئة أو لاحقة. اعتمادًا على الموقف الخاص بك، استخدم الأساليب المساعدة
ToLower()أوToUpper()وTrim()لتحسين احتمالية تساوي سلسلتين. - تقييم المساواة باستخدام العامل
!=. - قم بتقييم العوامل أكبر من وأقل من وما شابهها باستخدام عوامل المقارنة مثل
>و<و>=و<=. - إذا أرجع الأسلوب شرطًا، يمكن استخدامه كتعبير شرطي.
- استخدم عامل الرفض المنطقي
!لتقييم نظير تعبير معين.