
switch ואחריו את שם המשתנה בסוגריים.case ואחריו הערך, ואז נקודותיים.break כדי לצאת מהמנגנון.default, שמופעל כשהערך לא מתאים לאף מקרה אחר.הטקסט המלא של הדקות הראשונות בהרצאה «משפט Switch, Case - חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בסרטון הקודם אנחנו ראינו איך אנחנו יכולים לשלוט על בקרת הזרימה בתוכנית על ידי שימוש ב-if ו-else. בסרטון הזה אנחנו הולכים לראות פקודה נוספת שגם היא שולטת בבקרת הזרימה.
לצורך הדוגמה בואו ניקח מקרה שבו אנחנו בונים תוכנה עבור כספומט ואנחנו רוצים לקלוט מהמשתמש את הפקודה לביצוע.
בואו נניח שאנחנו רוצים להציג למשתמש אפשרות להכניס מספר ולפי המספר אנחנו רוצים לבצע את הפקודה המתאימה. אז אנחנו רוצים להציג למשתמש הודעה.
תכניס אחד בשביל לבצע הפקדה, שתיים בשביל משיכה, שלוש לבדוק יתרה, או ארבע לבטל כליל את הפעולה.
אז אמרנו למשתמש שיש לך פה בעצם איזשהו תפריט מסוים. אחד תפקיד כסף, שתיים תמשוך כסף, שלוש בירור יתרה, ארבע חרטטה אתה רוצה לבטל.
בסדר, אז בואו ניקח פה איזשהו משתנה, אופשן, נקלוט מהמשתמש את הבחירה שלו, וכעת אנחנו רוצים לבצע את הפעולות הדרושות בהתאם למה שהוא הכניס.
אז אם היינו משתמשים בטכניקה הקודמת, כמובן שהיינו יכולים לבצע את זה. היינו צריכים פשוט לעשות פה סדרת איפים. אם אופשן שווה 1, אנחנו רוצים לכתוב או לבצע פקודה של Deposit.
בואו נניח שפה אנחנו מבצעים את כל הפעולות הדרושות בשביל שהמשתמש יבצע הפקדה של כסף, הפקדה של צ'ק, הפקדה של מגומנים וכו'. אז אנחנו כרגע עושים הדמיה של איזשהו כספומט, ולכן יש לנו פה הדמיה שאנחנו כאילו מבצעים את הפקודה.
אבל אם הוא לא הכניס אחד, אז בעצם זה לא יהיה נכון לבצע עוד if option שווה 2. למה בעצם זה לא הדבר הכי נכון לבצע עוד if של option שווה 2?
מפני שאם הוא לא הכניס, בוא נגיד דבר כזה, אם הוא כן הכניס אחד התוכנית תבצע את הפקודות האלה אבל לאחר מכן היא תלך ותמשיך לבדוק האם אופצ'יון שווה 2. אין שום סיבה בעולם שהתוכנית תמשיך לבדוק האם אופצ'יון שווה 2 אם אכן אופצ'יון שווה 1 ולכן היה נכון להגדיר כאן אלס אלס איף אופצ'יון שווה 2 זאת
אומרת אם אופצ'יון שווה 1 אל תיגש לאלס כי כבר ביצעת את האיף אין לך מה ללכת ולבדוק אלס אם אופצ'ן שווה 2. אם אופצ'ן לא שווה 1 תיכנס לאלס ותבדוק האם הוא שווה 2 אם כן נבצע פה את הקוד הזה you want to withdrawal ובוא נניח שאנחנו ממשיכים ומבצעים משיכה אלס if אופצ'ן שווה 3 you want to check balance
אלס בוא נניח if אופצ'ן שווה 4 נדפיס you want to cancel, ביי ביי. אלס זה אומר שהוא טעה ולא הכניס לנו 1, 2, 3 או 4, נדפיס לו אירו.
בסדר, בואו נבדוק אם זה עובד. נריץ, נכניס 1 והמערכת יודעת שאנחנו רוצים להפקיד כסף. נריץ, נכניס 2 והמערכת יודעת שאנחנו רוצים לבצע משיכה.
נכניס 3, אנחנו הולכים לבצע בירור יתרה, המערכת יודעת את זה. נכניס 4, המערכת יודעת שאנחנו רוצים לעזוב ונכניס 5 או כל מספר אחר ונקבל error you must enter 124 אבל הקוד הזה למרות שהוא עובד הוא טיפה מסורבל והוא משתמש בטכניקה
הקודמת לכן מה שנעשה כרגע זה נשים אותו בהערה ונכתוב את הקוד האמיתי שהיינו יכולים לבצע בתוכנית בכדי לבצע את אותו הדבר וזה בעצם מנגנון שנקרא סוויץ'.
מנגנון סוויץ' טוב אך ורק במידה ואנחנו רוצים לבצע סדרת בדיקות על אותו המשתנה בדיוק, לא על משתנים שונים בכל אחת מהבדיקות, וזה בדיוק המקרה שיש לנו כאן.
במידה ואופשן שווה לאחד אנחנו רוצים לבצע פעולות מסוימות, במידה ואופשן שווה לשתיים ולא אחד אנחנו רוצים לבצע פעולות אחרות.
אנחנו לא רוצים לבדוק כל פעם משתנה אחר, אנחנו רוצים תמיד לבדוק את אותו משתנה. רק במצב הזה אנחנו יכולים להשתמש עם אופרטור, או יותר נכון עם מנגנון פוויץ'.
אנחנו רושמים פוויץ', בסוגריים רושמים אופשן, ובתוך הפוויץ' אנחנו מתחילים לרשום קייסים ואת הערכים שלהם. קייס אחד, נקודותיים, ואז את הפקודות שמתאימות לקייס אחד.
במקרה הזה יש לנו פקודה אחת. אחרי שסיימנו את כל הפקודות שזה אחת או יותר ששייכות לקייס אחד, אנחנו רושמים ברייק בכדי להפסיק את הקייס. קייס 2, אנחנו רוצים לבצע את המשיכה.
בואו נרשום נקודה זאת, ומיד אחר כך ברייק. קייס 3, אנחנו רוצים לבצע בירור יתרה ולעזוב את כל המנגנון.