تمرين - إنشاء نموذج للبيانات والحلقات الخاصة بتحديد القائمة
في هذا التمرين، يمكنك مراجعة التعليمات البرمجية في مشروع Starter، وتنفيذ بعض مهام تنظيف التعليمات البرمجية، ثم البدء في إضافة ميزات إلى التطبيق الخاص بك. المهام التي تكملها أثناء هذا التمرين هي:
- مراجعة التعليمات البرمجية: راجع محتويات ملف Program.cs.
- عينة البيانات: تحويل بنية if-elseif-else إلى بنية حالة التبديل التي تحسن قابلية القراءة.
- حلقة القائمة: إحاطة القائمة الرئيسية وتحديد عنصر القائمة في حلقة تتكرر حتى يدخل المستخدم "exit".
- تحديدات القائمة: اكتب التعليمات البرمجية لبنية حالة التبديل التي تنشئ فروع تعليمات برمجية منفصلة لكل خيار قائمة.
- فروع التعليمات البرمجية: اكتب عنصرا نائبا داخل فروع عناصر القائمة التي توفر ملاحظات المستخدم حتى يتم تطوير ميزات التطبيق.
- اختبار التحقق: قم بإجراء اختبارات التحقق للتعليمات البرمجية التي تطورها في هذا التمرين.
مراجعة محتويات ملف Program.cs
في هذه المهمة، يمكنك إكمال معاينة التعليمة البرمجية لمشروع Starter. يحتوي ملف Program.cs على إصدار أولي من التطبيق الذي تقوم بتحديثه أثناء هذه الوحدة النمطية. تنشئ التعليمات البرمجية الموجودة بيانات نموذجية للتطبيق وتعرض قائمة بخيارات القائمة. تمثل خيارات القائمة الميزات الرئيسية للتطبيق الخاص بك.
تأكد من فتح مجلد GuidedProject في Visual Studio Code.
تتضمن الوحدة السابقة قسم Setup الذي يصف كيفية فتح مشروع Starter. إذا لزم الأمر، فارجع واتبع إرشادات الإعداد.
في طريقة عرض EXPLORER ، قم بتوسيع مجلد Starter ، ثم حدد Program.cs.
عند تحديد ملف Program.cs، يتم فتح محتويات الملف في محرر Visual Studio Code.
إذا لم تكن طريقة عرض EXPLORER مفتوحة، فحدد EXPLORER من شريط نشاط Visual Studio Code. يوجد الزر EXPLORER في أعلى شريط النشاط.
خذ بضع دقائق لمراجعة التعليمات البرمجية في ملف Program.cs.
لاحظ أن الجزء العلوي من التعليمات البرمجية الخاصة بك يبدأ ببعض الإعلانات المتغيرة.
// the ourAnimals array will store the following: string animalSpecies = ""; string animalID = ""; string animalAge = ""; string animalPhysicalDescription = ""; string animalPersonalityDescription = ""; string animalNickname = ""; // variables that support data entry int maxPets = 8; string? readResult; string menuSelection = ""; // array used to store runtime data, there is no persisted data string[,] ourAnimals = new string[maxPets, 6];في أعلى الملف، سترى سطر تعليق وقائمة بالمتغيرات. تستخدم هذه المتغيرات،
animalSpeciesمن خلالanimalNickname، للاحتفاظ بقيم خصائص الأليفة. لاحقا في التعليمات البرمجية تقوم بتعيين القيم المميزة إلى صفيف سلسلة متعدد الأبعاد يسمىourAnimals. تتم تهيئة كل من هذه المتغيرات لتحتوي على سلسلة طول صفرية"".ourAnimalsيتم الإعلان عن الصفيف بشكل أكبر قليلا في التعليمات البرمجية.المجموعة التالية من المتغيرات هي مزيج من
stringالمتغيرات والمتغيراتintالتي ستستخدمها لإنشاء بيانات نموذجية، وقراءة إدخال المستخدم، ووضع معايير الخروج لحلقة البرنامج الرئيسية. ربما لاحظت سطرstring? readResult;التعليمات البرمجية . عند استخدامه في تعريف متغير مثل هذا،?يعرف الحرف متغير نوع يقبل القيم الخالية. عند قراءة المستخدم أدخل القيم باستخدامConsole.ReadLine()الأسلوب ، من الأفضل استخدام نوع يقبل القيم الخالية.المتغير النهائي هو صفيف سلسلة ثنائي الأبعاد يسمى
ourAnimals. نظرا لأنك تقوم بإنشاء مثيل للصفيف دون تهيئة أي قيم، يمكنك استخدامnewعامل التشغيل (newيتم استخدام عامل التشغيل لإنشاء مثيل جديد من نوع). يتم تعريف عدد الصفوف بواسطةmaxPets، الذي تمت تهيئته إلى ثمانية. عدد الخصائص التي تقوم بتخزينها هو ستة، متغيرات السلسلة التي فحصتها أعلاه.مرر لأسفل لفحص الحلقة
forالتي تحتوي علىif-elseif-elseبنية تحديد.ملاحظه
إذا رأيت عبارة
switchبدلا منif-elseif-elseداخل كتلة التعليمات البرمجية للحلقة،forفتأكد من مراجعة ملف Program.cs في مجلد Starter ، وليس ملف Program.cs في المجلد Final . لا تريد إجراء تغييرات على التعليمات البرمجية في المجلد النهائي. قد تحتاج إلى استخدام المجلد النهائي كمرجع لاحقا في هذه الوحدة النمطية.لاحظ أن الحلقة
forتستخدمmaxPetsالمتغير لإنشاء حد أعلى لعدد التكرارات.لاحظ أن
if-elseif-elseالإنشاء يفرع التعليمات البرمجية الخاصة بك بشكل انتقائي بناء على خصائص الأليفة.if-elseif-elseيتم استخدام البنية لتعريف قيم مختلفة للتكرارات الأربعة الأولى من الحلقةfor. بعد التكرار الرابع، يتم تعيين سلسلة فارغة أو صفرية لكافة الخصائص.يتم تعيين قيم متغيرات خصائص إلى صفيف ourAnimals في أسفل الحلقة
for.قم بالتمرير إلى أسفل ملف التعليمات البرمجية، ثم افحص التعليمات البرمجية المستخدمة لعرض خيارات القائمة وقراءة تحديد المستخدم.
لاحظ أنك تقوم بتعيين القيمة التي تم إرجاعها بواسطة
Console.ReadLine()الأسلوب إلى السلسلةreadResultالتي تقبل القيم الخالية .استخدام سلسلة تقبل القيم الخالية هو أفضل ممارسة لالتقاط الإدخال من أسلوب ReadLine(). بمجرد التحقق من أن قيمة الإدخال ليست خالية، يمكنك تعيين القيمة إلى متغير سلسلة قياسي يسمى
menuSelection. تمكنك هذه العملية من تقييم قيمة تحديد القائمة دون القلق بشأن القيم الخالية. ستنشئ العديد من الطرق التي تقبل السلاسل كمعلمة إدخال خطأ إذا تم تمرير قيمة خالية. إذا لم تتبع نمط الإدخال هذا، فمن المحتمل أن يقوم المحول البرمجي للتعليمات البرمجية بإنشاء تحذير عند إنشاء مشروعك.تعكس الأسطر النهائية لملف Program.cs تحديد خيار القائمة ثم توقف التنفيذ مؤقتا حتى يتم الضغط على المفتاح Enter.
تحويل عبارة if إلى عبارة تبديل
في هذه المهمة، يمكنك تحويل البنية الموجودة if-elseif-else إلى switch-case بنية. تعمل switch العبارة على تحسين قابلية قراءة التعليمات البرمجية الخاصة بك.
قم بالتمرير لأعلى إلى بداية الحلقة
forالمستخدمة لإنشاء نموذج البيانات.لاحظ أن البنية
if-elseif-elseتبدأ بالبيان التاليifو كتلة التعليمات البرمجية:if (i == 0) { animalSpecies = "dog"; animalID = "d1"; animalAge = "2"; animalPhysicalDescription = "medium sized cream colored female golden retriever weighing about 65 pounds. housebroken."; animalPersonalityDescription = "loves to have her belly rubbed and likes to chase her tail. gives lots of kisses."; animalNickname = "lola"; }استبدل العبارة الأولية
ifوحظر التعليمات البرمجية بالتعليمات البرمجية التالية:switch (i) { case 0: animalSpecies = "dog"; animalID = "d1"; animalAge = "2"; animalPhysicalDescription = "medium sized cream colored female golden retriever weighing about 65 pounds. housebroken."; animalPersonalityDescription = "loves to have her belly rubbed and likes to chase her tail. gives lots of kisses."; animalNickname = "lola"; break;case 0:تقوم التعليمات البرمجية بتنفيذ نفس التحديدif (i == 0)الذي تحل محله. ستقوم بإجراء استبدالات مقابلة لإكمال التحويل منif-elseif-elseالإنشاء إلى البنيةswitch-case.لاحظ أن رمز خط أحمر متعرج يظهر الآن أسفل
;في نهاية العبارةbreak.يستخدم Visual Studio Code خطا متعرجا أحمر لمساعدتك في اكتشاف المشكلات في التعليمات البرمجية الخاصة بك. في هذه الحالة، هناك بعض المشكلات. أولا، لم تقم بإغلاق كتلة التعليمات البرمجية لبيانك
switch. أيضا، لديكelse ifبدونif، وهو غير مسموح به. يمكنك إصلاح كل مشكلة من هذه المشكلات أثناء إكمال التحويل منifإلىswitch.استبدل العبارة
else if (i == 1)وحظر التعليمات البرمجية بالتعليمات البرمجية التالية:case 1: animalSpecies = "dog"; animalID = "d2"; animalAge = "9"; animalPhysicalDescription = "large reddish-brown male golden retriever weighing about 85 pounds. housebroken."; animalPersonalityDescription = "loves to have his ears rubbed when he greets you at the door, or at any time! loves to lean-in and give doggy hugs."; animalNickname = "loki"; break;استبدل العبارة
else if (i == 2)وحظر التعليمات البرمجية بالتعليمات البرمجية التالية:case 2: animalSpecies = "cat"; animalID = "c3"; animalAge = "1"; animalPhysicalDescription = "small white female weighing about 8 pounds. litter box trained."; animalPersonalityDescription = "friendly"; animalNickname = "Puss"; break;استبدل العبارة
else if (i == 3)وحظر التعليمات البرمجية بالتعليمات البرمجية التالية:case 3: animalSpecies = "cat"; animalID = "c4"; animalAge = "?"; animalPhysicalDescription = ""; animalPersonalityDescription = ""; animalNickname = ""; break;استبدل العبارة
elseوحظر التعليمات البرمجية بالتعليمات البرمجية التالية:default: animalSpecies = ""; animalID = ""; animalAge = ""; animalPhysicalDescription = ""; animalPersonalityDescription = ""; animalNickname = ""; break; }لاحظ أن
if-elseif-elseالبنية الآن تم استبدالها بالكامل ببنيةswitch-caseوأن رمز الخط الأحمر المتعرج قد اختفى.إذا بقيت أجزاء من البنية الخاصة بك
if-elseif-else، أو إذا كانتswitchالعبارة غير مكتملة، فتحقق لمعرفة ما إذا كنت قد فاتتك خطوة.يجب أن يكون للبنية المكتملة
switch-caseبنية مشابهة للتعليمات البرمجية التالية:ملاحظه
تمت إزالة المتغيرات المستخدمة لتعيين قيم خصائص الأليفة من نموذج التعليمات البرمجية أدناه لتقصير عدد أسطر التعليمات البرمجية. يجب أن تتضمن التعليمات البرمجية تعيينات متغير السلسلة لكل نمط حالة، بما في ذلك الحالة الافتراضية.
switch (i) { case 0: // variable assignments were removed for this view of the structure break; case 1: // variable assignments were removed for this view of the structure break; case 2: // variable assignments were removed for this view of the structure break; case 3: // variable assignments were removed for this view of the structure break; default: // variable assignments were removed for this view of the structure break; }تذكر أنه لا يسمح بتنفيذ مقطع التبديل "بالسقوط" إلى قسم التبديل التالي.
breakيتم استخدام العبارة للتأكد من عدم حدوث "السقوط".في قائمة Visual Studio Code File ، حدد Save.
في طريقة عرض EXPLORER، انقر بزر الماوس الأيمن فوق Starter، ثم حدد Open in Integrated Terminal.
يجب فتح لوحة TERMINAL أسفل منطقة محرر التعليمات البرمجية.
هناك عدة طرق لفتح المحطة الطرفية المتكاملة ل Visual Studio Code. على سبيل المثال، توفر القائمة العلوية الوصول إلى لوحة TERMINAL من كل من القائمة View وقائمة Terminal . يمكنك أيضا معرفة اختصارات لوحة المفاتيح التي تفتح لوحة TERMINAL. كل أسلوب مقبول.
لاحظ أن لوحة TERMINAL تتضمن موجه سطر أوامر، وأن المطالبة تعرض مسار المجلد الحالي.
على سبيل المثال:
C:\Users\someuser\Desktop\GuidedProject\Starter>يمكنك استخدام لوحة TERMINAL لتشغيل أوامر واجهة سطر الأوامر (CLI)، مثل
dotnet buildوdotnet run.dotnet buildسيقوم الأمر بتجميع التعليمات البرمجية وعرض رسائل الخطأ والتحذير المتعلقة ببناء جملة التعليمات البرمجية.هام
تحتاج إلى التأكد من أن موجه أوامر المحطة الطرفية مفتوح إلى جذر مساحة عمل المشروع. في هذه الحالة، يكون جذر مساحة عمل المشروع هو مجلد Starter، حيث توجد ملفات Starter.csproj وملفات Program.cs. عند تشغيل الأوامر في المحطة الطرفية، ستقوم الأوامر بتنفيذ إجراءات باستخدام موقع المجلد الحالي. إذا قمت بتشغيل
dotnet buildالأمر أوdotnet runمن موقع مجلد لا يحتوي على ملفاتك، فسينشئ الأمر رسائل خطأ.في موجه الأوامر TERMINAL، لإنشاء التعليمات البرمجية للمشروع، أدخل الأمر التالي:
dotnet buildبعد بضع ثوان، يجب أن تشاهد رسالة تخبرك بنجاح البناء الخاص بك، وأن لديك 0 تحذير (تحذيرات) و0 خطأ (أخطاء).
Determining projects to restore... All projects are up-to-date for restore. Starter -> C:\Users\someuser\Desktop\GuidedProject\Starter\bin\Debug\net10.0\Starter.dll Build succeeded. 0 Warning(s) 0 Error(s)إذا رأيت رسائل خطأ أو تحذير، فستحتاج إلى إصلاحها قبل المتابعة.
تسرد رسائل الخطأ والتحذير سطر التعليمات البرمجية حيث يمكن العثور على المشكلة. الرسالة التالية هي مثال على
Build FAILEDرسالة خطأ:C:\Users\someuser\Desktop\GuidedProject\Starter\Program.cs(53,18): error CS1002: ; expected [C:\Users\someuser\Desktop\GuidedProject\Starter\Starter.csproj]تخبرك هذه الرسالة بنوع الخطأ الذي تم اكتشافه ومكان العثور عليه. في هذه الحالة، تخبرك الرسالة أن ملف Program.cs يحتوي على خطأ -
error CS1002: ; expected.; expectedيقترح أنك نسيت تضمين;في نهاية عبارة .Program.cs(53,18)يخبرك جزء الرسالة أن الخطأ موجود في سطر التعليمات البرمجية 53، في موضع 18 حرفا من اليسار.يمنع خطأ في بناء الجملة مثل هذا نجاح البنية (فشل الإنشاء). توفر بعض رسائل الإنشاء "تحذير" بدلا من "خطأ"، ما يعني أن هناك شيئا يجب الاهتمام به، ولكن يمكنك محاولة تشغيل البرنامج على أي حال (نجح الإنشاء).
بمجرد إصلاح المشكلات وحفظ التحديثات، يمكنك تشغيل
dotnet buildالأمر مرة أخرى. تابع حتى يكون لديك 0 تحذير (تحذيرات) و0 خطأ (أخطاء).ملاحظه
إذا واجهت مشكلة في حل مشكلة بنفسك، يمكنك فحص التعليمات البرمجية Program.cs في المجلد النهائي المضمن كجزء من التنزيل الذي أكملته أثناء الإعداد. تمثل التعليمات البرمجية Program.cs في المجلد النهائي ختام جميع التدريبات في هذه الوحدة النمطية، لذلك ستتضمن التعليمات البرمجية التي لم تقم بإنشائها بعد. قد تبدو مختلفة إلى حد كبير عن التعليمات البرمجية Program.cs التي قمت بتطويرها في هذه المرحلة في المشروع الإرشادي. ومع ذلك، يمكنك محاولة فحص التعليمات البرمجية Program.cs في Final لمساعدتك في عزل مشكلة في التعليمات البرمجية وإصلاحها. تجنب استخدام التعليمات البرمجية في المجلد النهائي كدليل. تذكر أن المطورين يتعلمون من أخطائهم وأن كل مطور يقضي بعض الوقت في العثور على الأخطاء وإصلاحها.
أغلق لوحة Terminal.
إنشاء حلقة قائمة البرنامج
في هذه المهمة، يمكنك إنشاء do حلقة تحيط بخيارات القائمة والرمز الذي يقرأ إدخال المستخدم. يضمن هذا التكرار الحلقي تحديث القائمة الرئيسية للمستخدم في كل مرة يقوم فيها بتحديد قائمة. يتكرر هذا التكرار الحلقي حتى يختار المستخدم إنهاء البرنامج.
في محرر Visual Studio Code، في أعلى التعليمات البرمجية المستخدمة لعرض خيارات القائمة، حدد موقع التعليق التالي:
// display the top-level menu optionsأنشئ سطرا فارغا للتعليمات البرمجية أعلى التعليق، ثم أدخل التعليمات البرمجية التالية:
do {من خلال إحاطة خيارات قائمة البرنامج داخل
doحلقة، تأكد من أن المستخدم يرى خيارات القائمة مرة واحدة على الأقل.مرر لأسفل إلى أسفل ملف التعليمات البرمجية.
أنشئ سطرا فارغا للتعليمات البرمجية أسفل التعليمات البرمجية التي توقف تنفيذ التعليمات البرمجية مؤقتا، ثم قم بتحديث التعليمات البرمجية كما يلي:
// pause code execution readResult = Console.ReadLine(); } while ();لاحظ أنك أغلقت كتلة التعليمات البرمجية
doللحلقة، وأنك بدأت في إنشاء بيانكwhile.لتحديد التعبير المنطقي الذي يتم تقييمه بواسطة العبارة
while، قم بتحديث العبارةwhileكما يلي:while (menuSelection != "exit");سيضمن هذا التعبير تكرار
doالتكرار الحلقي حتى يختار المستخدم "إنهاء" التطبيق. سيعرض كل تكرار القائمة ويقرأ تحديد قائمة المستخدم.لاحظ أن المسافة البادئة سطر التعليمات البرمجية ليست ما تتوقع رؤيته داخل كتلة التعليمات البرمجية للحلقة الخاصة بك
do.لجعل Visual Studio Code "يصلح" المسافة البادئة لخطوط التعليمات البرمجية، انقر بزر الماوس الأيمن داخل محرر التعليمات البرمجية، ثم حدد تنسيق المستند.
بالإضافة إلى إلحاق أسطر التعليمات البرمجية بشكل صحيح، سيقوم الأمر تنسيق المستند بتطبيق قواعد تنسيق التعليمات البرمجية الأخرى. ومع ذلك، فإنه لا يصلح أخطاء بناء الجملة في التعليمات البرمجية الخاصة بك، ويمكن أن يكون له نتائج غير متوقعة إذا كانت التعليمات البرمجية الخاصة بك تتضمن كتل تعليمات برمجية غير مكتملة أو مشوهة. يعد الأمر "تنسيق المستند " مفيدا طالما كنت حذرا.
اختصارات لوحة المفاتيح لاستدعاء هذا الأمر هي:
- في Windows Shift + Alt + F
- على Mac Shift + Option + F
- على Linux Ctrl + Shift + I
يمكن أيضا العثور على هذا الأمر باستخدام لوحة الأوامر. للعثور على الأمر تنسيق المستند من لوحة الأوامر:
- في القائمة عرض ، حدد لوحة الأوامر، ثم أدخل تنسيق D في المطالبة.
- ستظهر قائمة الأوامر التي تمت تصفيتها تنسيق المستند كأمر قابل للتحديد
في قائمة Visual Studio Code File ، حدد Save.
افتح لوحة المحطة الطرفية المتكاملة.
يمكنك فتح لوحة Terminal بالنقر بزر الماوس الأيمن فوق مجلد Starter في EXPLORER، ثم تحديد Open in Integrated Terminal.
في موجه الأوامر Terminal، أدخل
dotnet buildالأمر لإنشاء التعليمات البرمجية المحدثة.يجب أن تشاهد رسالة تبلغ عن 0 تحذير (تحذيرات) و0 خطأ (أخطاء)
قم بإصلاح أي أخطاء أو تحذيرات إنشاء تراها تم الإبلاغ عنها قبل المتابعة.
في موجه الأوامر Terminal، أدخل الأمر لتشغيل التعليمات البرمجية
dotnet runالمحدثة.سيبدأ تشغيل التطبيق الخاص بك.
تحقق من عرض خيارات القائمة الرئيسية في لوحة Terminal كما هو متوقع.
يجب أن تشاهد ما يلي معروضا في لوحة TERMINAL.
Welcome to the Contoso PetFriends app. Your main menu options are: 1. List all of our current pet information 2. Add a new animal friend to the ourAnimals array 3. Ensure animal ages and physical descriptions are complete 4. Ensure animal nicknames and personality descriptions are complete 5. Edit an animal's age 6. Edit an animal's personality description 7. Display all cats with a specified characteristic 8. Display all dogs with a specified characteristic Enter your selection number (or type Exit to exit the program)في موجه الأوامر Terminal، لتحديد خيار القائمة 1، أدخل 1
إذا تم إيقاف تطبيقك مؤقتا مع وجود المؤشر على يمين "1"، فاضغط على مفتاح الإدخال Enter. لإدخال القيمة، تحتاج إلى الضغط على المفتاح Enter بعد كتابة الحرف 1 .
تحقق من أن التعليمات البرمجية الخاصة بك تعكس تحديد القائمة الذي أدخلته.
يجب أن تشاهد الإخراج التالي معروضا في المحطة الطرفية.
You selected menu option 1. Press the Enter key to continueإذا لم تشاهد هذه الرسالة، فتأكد من حفظ تحديثات التعليمات البرمجية
dotnet buildقبل تشغيل الأمر. إذا لزم الأمر، احفظ التعليمات البرمجية الخاصة بك ثم حاول تشغيل التطبيق الخاص بك مرة أخرى.في موجه الأوامر Terminal، اضغط على المفتاح Enter للمتابعة.
يؤدي الضغط على Enter إلى تمكين التعليمات البرمجية الخاصة بك من المتابعة بعد
Console.ReadLine()الأسلوب الموجود قبلwhileتقييم التعبير في نهاية التطبيق.للتحقق من أن التعليمات البرمجية الخاصة بك تستمر في قبول تحديدات قوائم إضافية، حاول إدخال واحد أو أكثر من أرقام عناصر القائمة الأخرى.
إذا توقفت التعليمات البرمجية عن العمل بعد إدخال "1"، فتأكد من حفظ تحديثات التعليمات البرمجية. إذا لزم الأمر، احفظ التعليمات البرمجية الخاصة بك ثم حاول تشغيل التطبيق الخاص بك مرة أخرى.
قد تلاحظ أنه يمكنك إدخال أي نص أو قيمة رقمية، أو حتى مجموعة من الأحرف والأرقام. ستعالج هذه المشكلة عند تطوير التعليمات البرمجية التي تدير إدخال المستخدم.
في موجه أوامر Terminal، للتحقق من تقييم معايير الخروج للحلقة بشكل صحيح، أدخل إما Exit أو exit.
عند إدخال إما "Exit" أو "exit"،
whileيجب تقييم التعبير إلىfalseويجب أن ينتهي تنفيذ التعليمات البرمجية.هام
إذا لم يتوقف تنفيذ التعليمات البرمجية كما هو متوقع عند إدخال "إنهاء"، يمكنك الضغط على Ctrl-C في الوحدة الطرفية المتكاملة لفرض إيقاف تنفيذ التعليمات البرمجية.
أغلق لوحة Terminal.
كتابة عبارة التبديل لتحديدات القائمة
في هذه المهمة، يمكنك كتابة التعليمات البرمجية لبيان switch يفرع تنفيذ التعليمات البرمجية استنادا إلى القيمة المعينة إلى menuSelection. يمكنك إنشاء تسمية switch تتوافق مع كل رقم عنصر قائمة. يضمن إنشاء تسميات منفصلة switch إدارة كل عنصر قائمة بشكل منفصل.
switch تقوم العبارة بعمل جيد لتنفيذ المنطق المقصود من التطبيق الخاص بك.
في محرر التعليمات البرمجية Visual Studio، حدد موقع سطر التعليمات البرمجية التالي
Console.WriteLine()المستخدم لإعادة تحديد القائمة.Console.WriteLine($"You selected menu option {menuSelection}.");لبدء تطوير العبارة الخاصة بك
switch، قم بتحديث التعليمات البرمجية الخاصة بك على النحو التالي://Console.WriteLine($"You selected menu option {menuSelection}."); //Console.WriteLine("Press the Enter key to continue"); // pause code execution //readResult = Console.ReadLine(); switch(menuSelection) { }لإضافة النمط الأول
caseإلى العبارة الخاصة بكswitch، قم بتحديث رمز العبارة الخاص بكswitchكما يلي:switch(menuSelection) { case "1": break; }ربما لاحظت أن نمط الحالة المستخدم هنا يبدو مختلفا قليلا عن نمط الحالة المستخدم عند إنشاء نموذج البيانات في وقت سابق في التطبيق (
case 1:مقابلcase "1":). التفسير بسيط. كنت تتحقق من قيم العدد الصحيح مسبقا والآن تقوم بالتحقق من قيم السلسلة.لإنشاء فروع التحديد في البنية الخاصة بك
switch-caseلكل من أرقام تحديد القائمة المتبقية، أضف خيارات إضافيةcaseكما يلي:switch(menuSelection) { case "1": break; case "2": break; case "3": break; case "4": break; case "5": break; case "6": break; case "7": break; case "8": break; }لاحظ أنه يمكنك إضافة الحالة الاختيارية
defaultإلى نهاية قائمة التحديد الخاصة بك كما يلي:switch(menuSelection) { // case selections 1-7 have been removed to simplify this sample code case "8": break; default: break; }في قائمة Visual Studio Code File ، حدد Save.
افتح لوحة الوحدة الطرفية المتكاملة ثم قم بتشغيل الأمر لإنشاء البرنامج.
dotnet buildاستخدم الأمر لإنشاء التعليمات البرمجية المحدثة.يجب أن تشاهد الرسالة التي تبلغ عن 0 تحذير (تحذيرات) و0 خطأ (أخطاء)
قم بإصلاح أي أخطاء أو تحذيرات إنشاء تراها تم الإبلاغ عنها قبل المتابعة.
أغلق لوحة Terminal.
كتابة رمز العنصر النائب لكل حالة من عبارة التبديل
في هذه المهمة، يمكنك تحديث مسارات تنفيذ التعليمات البرمجية التي تم إنشاؤها بواسطة العبارة الخاصة بك switch . عند الانتهاء، سيوفر كل switch قسم ملاحظات للمستخدم الذي يقر بتحديد القائمة الخاصة به. يعد تقديم الملاحظات التي تقر بإدخال المستخدم أمرا مهما بشكل خاص لأنك لن تتمكن من إكمال التعليمات البرمجية لجميع خيارات القائمة أثناء هذه الوحدة. تتيح الملاحظات للمستخدم معرفة أن التعليمات البرمجية تعرف على إدخاله، حتى إذا كان التطبيق غير قادر على معالجة الطلب.
في محرر Visual Studio Code، حدد موقع سطر التعليمات البرمجية الذي
case "1":يحتوي على التحديد:switch (menuSelection) { case "1": break;لتوفير رسالة ملاحظات للمستخدم بين سطري التعليمات البرمجية
case "1":وbreak;، قم بتحديث التعليمات البرمجية الخاصة بك كما يلي:switch (menuSelection) { case "1": // List all of our current pet information Console.WriteLine("this app feature is coming soon - please check back to see progress."); Console.WriteLine("Press the Enter key to continue."); readResult = Console.ReadLine(); break;أضف نفس رسالة الملاحظات للتحديد
case "2":كما يلي:switch (menuSelection) { case "1": // List all of our current pet information Console.WriteLine("this app feature is coming soon - please check back to see progress."); Console.WriteLine("Press the Enter key to continue."); readResult = Console.ReadLine(); break; case "2": // List all of our current pet information Console.WriteLine("this app feature is coming soon - please check back to see progress."); Console.WriteLine("Press the Enter key to continue."); readResult = Console.ReadLine(); break;قم بتحديث تعليق الخط للتحديد
case "2":ليعكس خيار القائمة الثانية كما يلي:case "2": // Add a new animal friend to the ourAnimals array Console.WriteLine("this app feature is coming soon - please check back to see progress."); Console.WriteLine("Press the Enter key to continue."); readResult = Console.ReadLine(); break;case "3":بالنسبة للتحديدات من خلالcase "8":، قم بتحديث التعليمات البرمجية الخاصة بك بتعليق سطر يعكس نص عنصر القائمة المقترن.على سبيل المثال، أضف
// Ensure animal ages and physical descriptions are completeأدناهcase "3":يمكنك نسخ نص عنصر القائمة من أسطر التعليمات البرمجية التي تعرض خيارات القائمة.
ملاحظه
يمكنك استخدام الأمر "تنسيق المستند" لتنظيف التنسيق. قد يؤدي ذلك إلى تسريع عملك ومنحك المزيد من الوقت للتركيز على التعليمات البرمجية التي تدخلها بدلا من كيفية ظهورها.
بالنسبة للتحديدين
case "3":وcase "4":، أضف رسالة الملاحظات التالية و ReadLine() أسفل تعليق السطر:Console.WriteLine("Challenge Project - please check back soon to see progress."); Console.WriteLine("Press the Enter key to continue."); readResult = Console.ReadLine();بالنسبة للتحديدات المتبقية
case، قم بتحديث التعليمات البرمجية الخاصة بك برسالة الملاحظات التالية و ReadLine():Console.WriteLine("UNDER CONSTRUCTION - please check back next month to see progress."); Console.WriteLine("Press the Enter key to continue."); readResult = Console.ReadLine();ملاحظه
إذا أضفت الحالة الاختيارية
defaultإلى قائمة التحديد، فلا تقم بإضافة رسالة الملاحظات إلى هذه الحالة.في قائمة Visual Studio Code File ، حدد Save.
تذكر أن Visual Studio Code سينسق التعليمات البرمجية الخاصة بك إذا نقرت بزر الماوس الأيمن داخل محرر التعليمات البرمجية ثم حدد تنسيق المستند من قائمة السياق.
افتح لوحة المحطة الطرفية المتكاملة، ثم قم بتشغيل الأمر لإنشاء البرنامج.
dotnet buildاستخدم الأمر لإنشاء التعليمات البرمجية المحدثة.قم بإصلاح أي أخطاء أو تحذيرات إنشاء تراها تم الإبلاغ عنها قبل المتابعة.
راجع عملك
في هذه المهمة، يمكنك تشغيل التطبيق الخاص بك من الوحدة الطرفية المتكاملة والتحقق من أن العبارة الخاصة بك switch تفريع التعليمات البرمجية الخاصة بك كما هو مقصود. يمكنك أيضا التحقق من عرض رسائل الملاحظات المتوقعة لكل تحديد قائمة. سيتم أيضا إعادة اختبار معايير الخروج لحلقة القائمة الرئيسية.
إذا لزم الأمر، افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code.
في موجه الأوامر Terminal، أدخل dotnet run
في موجه الأوامر Terminal، لتحديد خيار القائمة الأولى، أدخل 1
تحقق من عرض الرسالة المتوقعة "قريبا".
كرر الخطوة السابقة، وأدخل كل رقم من أرقام خيارات القائمة الأخرى للتحقق من عرض الرسالة المتوقعة في كل حالة.
في موجه الأوامر Terminal، أدخل إما Exit أو exit للتحقق من أن معايير الخروج الخاصة بك لا تزال قيد التقييم بشكل صحيح.
هام
إذا لم يتوقف تنفيذ التعليمات البرمجية كما هو متوقع، يمكنك الضغط على Ctrl-C في الوحدة الطرفية المتكاملة لفرض التنفيذ للإيقاف.
أغلق لوحة Terminal.