תרגיל - יישום הצהרת מתג
- 11 דקות
משפט switch הוא משפט בחירה של C# המספק חלופה לבניית יצירת if-elseif-else הסתעפות. המשפט switch מספק יתרונות על if-elseif-else פני מבנה בעת הערכת ערך יחיד מול רשימה של ערכים תואמים ידועים.
שקול את התרחיש הבא:
- אתה עובד על אפליקציה הקשורה לתזונה מזון. סעיף בקוד עוסק פירות.
- הקוד שלך כולל משתנה
fruitבשם המשמש לאחסון השם של סוגי פירות שונים. - יש לך רשימה של 20 פירות היישום שלך ממוקד על.
- ברצונך ליצור הסתעפות של הקוד שלך בהתבסס על הערך שהוקצה ל-
fruit.
בתרחיש זה, באפשרותך להשתמש במשפט כדי switch ליצור ענף נפרד עבור כל סוג של פירות.
כיצד פועל משפט מעבר?
המשפט switch בוחר מקטע אחד של קוד לביצוע מתוך רשימה של מקטעי מתגים אפשריים. מקטע הבורר שנבחר נבחר בהתבסס על תבנית התואמת לביטוי ההתאמה של המשפט.
שקול את דוגמת הקוד הבאה המציגה את המבנה הבסיסי של switch המשפט:
switch (fruit)
{
case "apple":
Console.WriteLine($"App will display information for apple.");
break;
case "banana":
Console.WriteLine($"App will display information for banana.");
break;
case "cherry":
Console.WriteLine($"App will display information for cherry.");
break;
}
ביטוי ההתאמה (הנקרא גם ביטוי הבורר ) הוא הערך הבא אחרי מילת switch המפתח, במקרה זה (fruit). כל מקטע בורר מוגדר באמצעות תבנית רישיות. תבניות רישיות בנויות באמצעות מילת המפתח case ואחריה ערך. תבנית הרישיות הראשונה בדוגמה זו היא: case "apple":. תבניות רישיות הן ביטויים בוליאניים המוערכים ל- true או ל- false. כל מקטע בורר כולל מספר קטן של שורות קוד שיתבצעו אם תבנית הרישיות תואמת לביטוי ההתאמה. בדוגמה זו, אם fruit מוקצה ערך של "apple", true תבנית הרישיות הראשונה תוערך כ- ומקטע מעבר זה יופעל.
משפט מעבר חייב לכלול מקטע בורר אחד לפחות, אך בדרך כלל יכיל שלושה מקטעים של מתגים או יותר.
מומלץ להשתמש בלחצן זה כאשר:
- יש לך ערך יחיד (משתנה או ביטוי) שברצונך להתאים לערכים אפשריים רבים.
- עבור כל התאמה נתונה, עליך לבצע מספר שורות קוד לכל היותר.
הערה
דוגמה ראשונה זו להצהרה switch היא פשוטה בכוונה, ובדיקת התחביר שלך היתה קצרה. בסעיפים הבאים תבחן תכונות switch נוספות של ההצהרה בעת עבודה על כמה תרחישים מתקדמים יותר.
הגיע הזמן להכין את סביבת הקידוד שלך ולהחיל לפתח הצהרות switch משלך.
הכנת סביבת הקידוד שלך
מודול זה כולל פעילויות מעשיות שמנחה אותך לאורך תהליך הבנייה וההפעלה של קוד הדגמה. אנו ממליצים לך להשלים פעילויות אלה באמצעות Visual Studio Code כסביבת הפיתוח שלך. השימוש ב- Visual Studio Code עבור פעילויות אלה יעזור לך לכתוב ולבצע קוד בצורה נוחה יותר בסביבת מפתחים המשמשת מומחים ברחבי העולם.
פתח את Visual Studio Code.
באפשרותך להשתמש בתפריט ההתחלה של Windows (או במשאב שווה ערך עבור מערכת הפעלה אחרת) כדי לפתוח את Visual Studio Code.
בתפריט קובץ קוד של Visual Studio, בחר פתח תיקיה.
בתיבת הדו-שיח פתיחת תיקיה, נווט אל תיקיית שולחן העבודה של Windows.
אם יש לך מיקום תיקיה אחר שבו אתה שומר פרוייקטים של קוד, באפשרותך להשתמש במיקום תיקיה זה במקום זאת. להדרכה זו, הדבר החשוב הוא שיהיה לך מיקום שקל לאתר ולזכור.
בתיבת הדו-שיח פתיחת תיקיה, בחר בחר תיקיה.
אם אתה רואה תיבת דו-שיח של אבטחה השואלת אם אתה נותן אמון בעורכים, בחר כן.
בתפריט מסוף קוד Visual Studio , בחר מסוף חדש.
שים לב שבקשה לפקודה בלוח המסוף מציגה את נתיב התיקיה עבור התיקיה הנוכחית. לדוגמה:
C:\Users\someuser\Desktop>הערה
אם אתה עובד במחשב שלך ולא בסביבת ארגז חול או סביבה מתארחת והשלמת מודולים אחרים של Microsoft Learn בסדרת C# זו, ייתכן שכבר יצרת תיקיית פרוייקט עבור דוגמאות קוד. במקרה זה, באפשרותך לדלג על השלב הבא, המשמש ליצירת יישום מסוף בתיקיה TestProject.
בשורת הפקודה של המסוף, כדי ליצור יישום מסוף חדש בתיקיה שצוינה, הזן את הבקשה הבאה:
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, בחר פתח תיקיה.
בתיבת הדו-שיח פתיחת תיקיה, בחר את התיקיה CsharpProjects ולאחר מכן בחר בחר תיקיה.
בתצוגת EXPLORER, הרחב את התיקיה TestProject ולאחר מכן בחר Program.cs.
מחק את שורות הקוד הקיימות.
יהיה עליך להשתמש בפרוייקט זה של מסוף C# כדי ליצור, לבנות ולהפעיל דוגמאות קוד במהלך מודול זה.
סגור את לוח המסוף.
יצירה ובדיקה של משפט מעבר
ודא שהאפשרות קוד Visual Studio פתוחה Program.cs בלוח 'עורך'.
הערה
Program.cs צריך להיות ריק. אם לא, בחר ומחק את כל שורות הקוד.
הקלד את הקוד הבא בעורך הקוד של Visual Studio:
int employeeLevel = 200; string employeeName = "John Smith"; string title = ""; switch (employeeLevel) { case 100: title = "Junior Associate"; break; case 200: title = "Senior Associate"; break; case 300: title = "Manager"; break; case 400: title = "Senior Manager"; break; default: title = "Associate"; break; } Console.WriteLine($"{employeeName}, {title}");בתפריט קוד Visual Studio קובץ, בחר שמור.
יש Program.cs הקובץ לפני בנייה או הפעלה של הקוד.
בלוח EXPLORER, כדי לפתוח מסוף במיקום התיקיה TestProject, לחץ באמצעות לחצן העכבר הימני על TestProjectולאחר מכן בחר פתח במסוף משולב.
לוח מסוף ייפתח. המסוף צריך לכלול שורת פקודה שמראה כי המסוף פתוח במיקום התיקיה TestProject שלך.
בשורת הפקודה Terminal, כדי להפעיל את הקוד, הקלד dotnet מכן הקש Enter.
הערה
אם אתה רואה הודעה המציינת כי "לא היתה אפשרות למצוא פרוייקט להפעלה", ודא שבקשה לפקודה של Terminal מציגה את מיקום התיקיה TestProject הצפוי. לדוגמה:
C:\Users\someuser\Desktop\csharpprojects\TestProject>אתה אמור לראות את הפלט הבא:
John Smith, Senior Associateהת להימשך דקה כדי לסקור
switchאת ההצהרה שהזנת.שים לב שהצהרה
switchמגדירה בלוק קוד יחיד.המשפט
switchמגדיר בלוק קוד יחיד הכולל רשימה של מקטעי מתגים. משמאל למילתswitchהמפתח נמצא ביטוי בורר המצורף בסוגריים.שים לב לרשימת המקטעים של המעבר בתוך בלוק הקוד.
בלוק
switchהקוד מכיל רשימה של מקטעי מתגים, שכל אחד מהם כולל תוויות מתג אחת או יותר. בנוסף, כל מקטע בורר כולל רשימת משפטים שתבצע אם התווית שווה לביטוי הבורר המוגדר בחלק העליון של משפט הבורר.ביטוי הבורר מוערך מול תוויות הרישיות מלמעלה למטה עד שנמצא ערך השווה לביטוי הבורר. אם אף אחת מהתוויות אינה תואמת, תתבצע רשימת
defaultהמשפטים עבור האירוע. אם לא נכללת ברירת מחדל, הפקד מועבר לנקודה הסיום של משפט המתג. כל תווית חייבת לספק סוג ערך התואם לסוג שצוין בביטוי הבורר.הערה
התווית
defaultהאופציונלית יכולה להופיע בכל מיקום בתוך רשימת המקטעים של המתגים. עם זאת, רוב המפתחים בוחרים להותר כי הגיוני יותר (מבחינה לוגית)defaultלמקם אותה כאפשרות הסופית. ללא קשר למיקום, המקטעdefaultיוערך אחרון.בדוגמה שלנו:
- ביטוי הבורר הוא
(employeeLevel) - לכל מקטע מתג יש תווית מתג יחידה ( או
casedefault). - מקטע הבורר התואם מוגדר על-ידי
case: 200, מאזemployeeLevel = 200.
- ביטוי הבורר הוא
שים לב שכל מקטע מעבר מופרד ממקטע הבא.
ניתן לבצע מקטע מעבר אחד בלבד. משמעות הדבר היא שביצוע של מקטע מעבר אינו מורשה "לעבור" למקטע הבורר הבא. מילת
breakהמפתח היא אחת מכמה דרכים לסיים מקטע מעבר לפני שהיא תתווסף למקטע הבא. אם תשכח את מילתbreakהמפתח (או, לחלופין,returnמילת המפתח) המהדר ייצור שגיאה.
שנה את ערך משתנה הרמה כדי לראות כיצד משפט הבורר מעריך אותו
כדי לממש את מקרה ברירת המחדל, נשנה את רמת העובד על-ידי שינוי הקצאת הערך.
כדי לשנות את הערך שהוקצה ל-
employeeLevel, עדכן את הקוד באופן הבא:int employeeLevel = 201;שמור את קובץ הקוד ולאחר מכן השתמש ב- Visual Studio Code כדי להפעיל את הקוד.
הזן
dotnet runמשורת הפקודה Terminal כדי להפעיל את הקוד שלך.שים לב שהפלט השתנה.
כעת, כאשר אתה מפעיל את הקוד, אתה אמור לראות את הכותרת הכללית יותר בשימוש.
John Smith, Associateמאחר שהתווית
employeeLevelאינה תואמת לתוויות כלשהן,defaultהתווית תואמת.
שינוי מקטע בורר כך שיכלול תוויות מרובות
נניח שהחברה שלנו החליטה לתת לכל העובדים ברמה 100 את הכותרת "שותף בכיר" - אותה כותרת של עובדים ברמה 200. בתור המפתח, אתה case 100:מחליט ליישם זאת על-ידי הסרת מקטע הבורר הראשון השייך לתווית , case 100:case 200: ובמקום זאת אפשר הן לתוויות והן לביצוע אותו מקטע בורר.
כדי לשנות את הערך שהוקצה ל-
employeeLevel, עדכן את הקוד באופן הבא:int employeeLevel = 100;כדי להקצות תוויות מרובות למקטע הבורר הראשון, עדכן את הקוד באופן הבא:
case 100: case 200: title = "Senior Associate"; break;לאחר שתסיים לבצע שינויים, השינויים שלך אמורים להיות תואמים לקוד הבא:
int employeeLevel = 100; string employeeName = "John Smith"; string title = ""; switch (employeeLevel) { case 100: case 200: title = "Senior Associate"; break; case 300: title = "Manager"; break; case 400: title = "Senior Manager"; break; default: title = "Associate"; break; } Console.WriteLine($"{employeeName}, {title}");שמור את קובץ הקוד ולאחר מכן השתמש ב- Visual Studio Code כדי להפעיל את הקוד.
הזן
dotnet runמשורת הפקודה Terminal כדי להפעיל את הקוד שלך.אתה אמור לראות את הפלט הבא:
John Smith, Senior Associateשתי תוויות הרישיות
100200מקושרות כעת למקטע המתג המגדיר את הכותרת לערך המחרוזתSenior Associate.
סיכום
הנה המלקחיים העיקריים שלמדת על משפט המעבר:
- השתמש במשפט
switchכאשר יש לך ערך אחד עם התאמות אפשריות רבות, כל התאמה דורשת הסתעפות של לוגיקת הקוד שלך. - ניתן להתאים מקטע בורר יחיד המכיל את לוגיקת הקוד באמצעות תווית אחת או יותר המוגדרת על-ידי מילת
caseהמפתח. - השתמש במילת
defaultהמפתח האופציונלית כדי ליצור תווית ומקטע מעבר שישמש כאשר אין תוויות רישיות תואמות אחרות.