PracticU

משפט Switch, Case - חלק 1

בלי כתוביותעם כתוביות
PracticU › קורס יסודות התכנות - שפת C# .NET - קורס תכנות למתחילים - דוט-נט / סי-שארפ - חומר לימוד של מדעי המחשב › משפט Switch, Case - חלק 1
מילון מושגים:
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.
תנאי - ביטוי לוגי בקוד שתוצאתו אמת או שקר, וקובע אילו פקודות יתבצעו בהתאם לערכו.

משפט Switch, Case - חלק 1
משפט switch מחליף סדרה של בדיקות if-else שמשוות את אותו משתנה לכמה ערכים קבועים. הסרטון מציג את ההבדל בין שתי הדרכים, ומסביר את המבנה של switch.
הבעיה
נניח כספומט שמציג תפריט: 1 להפקדה, 2 למשיכה, 3 לבירור יתרה, 4 לביטול. אפשר לכתוב שרשרת של if ו-else if, שבודקת את אותו משתנה שוב ושוב. בשרשרת כזו התוכנית עלולה להמשיך לבדוק תנאים שכבר אין בהם צורך, ולכן הדובר מזכיר שההגדרה הנכונה היא שרשרת של else if שמפסיקה בהתאמה הראשונה.
המבנה של switch
1. כותבים switch ואחריו את שם המשתנה בסוגריים.
2. לכל אפשרות כותבים case ואחריו הערך, ואז נקודותיים.
3. אחרי הפקודות של המקרה כותבים break כדי לצאת מהמנגנון.
4. המקרה האחרון יכול להיות default, שמופעל כשהערך לא מתאים לאף מקרה אחר.
איחוד מקרים
כשכמה מקרים צריכים לבצע את אותה פעולה, כותבים אותם ברצף בלי פקודות ביניהם, ורק אחר כך את הפקודות ו-break. למשל, אם המשתנה הוא 4, 5 או 7, כולם מבצעים את אותה פעולה.
מה הכלל
switch מתאים כשכל הבדיקות הן על אותו משתנה ועל ערכים מדויקים. הוא לא מתאים לבדיקת טווחים או לתנאים שמשווים משתנים שונים. במקרים כאלה נשארים עם if.
שימו לב
כל מקרה חייב להסתיים בבריחה, כמו break, אחרת התוכנית ממשיכה למקרה הבא.
השיעור הבא בקורס: משפט Switch, Case - חלק 2

פרקי ההרצאה: משפט Switch, Case - חלק 1

  1. 00:00

    דוגמה: תפריט כספומט לפי בחירה

  2. 01:51

    שרשרת if רבה והבעיה בה

  3. 02:49

    שימוש ב-else if לבחירה אחת

  4. 05:12

    טיפול בקלט לא חוקי

  5. 05:48

    מנגנון Switch על אותו משתנה

  6. 06:21

    כתיבת Case ו-Break

תמלול ההרצאה: משפט Switch, Case - חלק 1

הטקסט המלא של הדקות הראשונות בהרצאה «משפט Switch, Case - חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:00

    בסרטון הקודם אנחנו ראינו איך אנחנו יכולים לשלוט על בקרת הזרימה בתוכנית על ידי שימוש ב-if ו-else. בסרטון הזה אנחנו הולכים לראות פקודה נוספת שגם היא שולטת בבקרת הזרימה.

  2. 00:16

    לצורך הדוגמה בואו ניקח מקרה שבו אנחנו בונים תוכנה עבור כספומט ואנחנו רוצים לקלוט מהמשתמש את הפקודה לביצוע.

  3. 00:27

    בואו נניח שאנחנו רוצים להציג למשתמש אפשרות להכניס מספר ולפי המספר אנחנו רוצים לבצע את הפקודה המתאימה. אז אנחנו רוצים להציג למשתמש הודעה.

  4. 00:43

    תכניס אחד בשביל לבצע הפקדה, שתיים בשביל משיכה, שלוש לבדוק יתרה, או ארבע לבטל כליל את הפעולה.

  5. 01:14

    אז אמרנו למשתמש שיש לך פה בעצם איזשהו תפריט מסוים. אחד תפקיד כסף, שתיים תמשוך כסף, שלוש בירור יתרה, ארבע חרטטה אתה רוצה לבטל.

  6. 01:25

    בסדר, אז בואו ניקח פה איזשהו משתנה, אופשן, נקלוט מהמשתמש את הבחירה שלו, וכעת אנחנו רוצים לבצע את הפעולות הדרושות בהתאם למה שהוא הכניס.

  7. 01:55

    אז אם היינו משתמשים בטכניקה הקודמת, כמובן שהיינו יכולים לבצע את זה. היינו צריכים פשוט לעשות פה סדרת איפים. אם אופשן שווה 1, אנחנו רוצים לכתוב או לבצע פקודה של Deposit.

  8. 02:22

    בואו נניח שפה אנחנו מבצעים את כל הפעולות הדרושות בשביל שהמשתמש יבצע הפקדה של כסף, הפקדה של צ'ק, הפקדה של מגומנים וכו'. אז אנחנו כרגע עושים הדמיה של איזשהו כספומט, ולכן יש לנו פה הדמיה שאנחנו כאילו מבצעים את הפקודה.

  9. 02:41

    אבל אם הוא לא הכניס אחד, אז בעצם זה לא יהיה נכון לבצע עוד if option שווה 2. למה בעצם זה לא הדבר הכי נכון לבצע עוד if של option שווה 2?

  10. 02:56

    מפני שאם הוא לא הכניס, בוא נגיד דבר כזה, אם הוא כן הכניס אחד התוכנית תבצע את הפקודות האלה אבל לאחר מכן היא תלך ותמשיך לבדוק האם אופצ'יון שווה 2. אין שום סיבה בעולם שהתוכנית תמשיך לבדוק האם אופצ'יון שווה 2 אם אכן אופצ'יון שווה 1 ולכן היה נכון להגדיר כאן אלס אלס איף אופצ'יון שווה 2 זאת

  11. 03:24

    אומרת אם אופצ'יון שווה 1 אל תיגש לאלס כי כבר ביצעת את האיף אין לך מה ללכת ולבדוק אלס אם אופצ'ן שווה 2. אם אופצ'ן לא שווה 1 תיכנס לאלס ותבדוק האם הוא שווה 2 אם כן נבצע פה את הקוד הזה you want to withdrawal ובוא נניח שאנחנו ממשיכים ומבצעים משיכה אלס if אופצ'ן שווה 3 you want to check balance

  12. 04:09

    אלס בוא נניח if אופצ'ן שווה 4 נדפיס you want to cancel, ביי ביי. אלס זה אומר שהוא טעה ולא הכניס לנו 1, 2, 3 או 4, נדפיס לו אירו.

  13. 04:46

    בסדר, בואו נבדוק אם זה עובד. נריץ, נכניס 1 והמערכת יודעת שאנחנו רוצים להפקיד כסף. נריץ, נכניס 2 והמערכת יודעת שאנחנו רוצים לבצע משיכה.

  14. 05:04

    נכניס 3, אנחנו הולכים לבצע בירור יתרה, המערכת יודעת את זה. נכניס 4, המערכת יודעת שאנחנו רוצים לעזוב ונכניס 5 או כל מספר אחר ונקבל error you must enter 124 אבל הקוד הזה למרות שהוא עובד הוא טיפה מסורבל והוא משתמש בטכניקה

  15. 05:27

    הקודמת לכן מה שנעשה כרגע זה נשים אותו בהערה ונכתוב את הקוד האמיתי שהיינו יכולים לבצע בתוכנית בכדי לבצע את אותו הדבר וזה בעצם מנגנון שנקרא סוויץ'.

  16. 05:45

    מנגנון סוויץ' טוב אך ורק במידה ואנחנו רוצים לבצע סדרת בדיקות על אותו המשתנה בדיוק, לא על משתנים שונים בכל אחת מהבדיקות, וזה בדיוק המקרה שיש לנו כאן.

  17. 06:01

    במידה ואופשן שווה לאחד אנחנו רוצים לבצע פעולות מסוימות, במידה ואופשן שווה לשתיים ולא אחד אנחנו רוצים לבצע פעולות אחרות.

  18. 06:10

    אנחנו לא רוצים לבדוק כל פעם משתנה אחר, אנחנו רוצים תמיד לבדוק את אותו משתנה. רק במצב הזה אנחנו יכולים להשתמש עם אופרטור, או יותר נכון עם מנגנון פוויץ'.

  19. 06:20

    אנחנו רושמים פוויץ', בסוגריים רושמים אופשן, ובתוך הפוויץ' אנחנו מתחילים לרשום קייסים ואת הערכים שלהם. קייס אחד, נקודותיים, ואז את הפקודות שמתאימות לקייס אחד.

  20. 06:42

    במקרה הזה יש לנו פקודה אחת. אחרי שסיימנו את כל הפקודות שזה אחת או יותר ששייכות לקייס אחד, אנחנו רושמים ברייק בכדי להפסיק את הקייס. קייס 2, אנחנו רוצים לבצע את המשיכה.

  21. 07:01

    בואו נרשום נקודה זאת, ומיד אחר כך ברייק. קייס 3, אנחנו רוצים לבצע בירור יתרה ולעזוב את כל המנגנון.

לקורס המלא: קורס C# למתחילים אונליין

ההרצאה הקודמת: תנאי If - Else - חלק 3

ההרצאה הבאה: משפט Switch, Case - חלק 2

הרצאות קשורות מקורסים אחרים

  • משפט SWITCH בג'אווה
  • ביטויי Switch Case
  • Switch
  • פקודת case - חלק 1

קורסים נוספים במסלול

  • קורס פיתוח משחקים יוניטי - Unity - שפת #C