PracticU

Switch

בלי כתוביותעם כתוביות
PracticU › קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים › Switch
Switch
השיעור מציג את מנגנון ה-switch, דרך נוחה לבדוק ערך אחד מול כמה אפשרויות בלי שרשרת ארוכה של if ו-else.
מ-if-else ל-switch
1. הדוגמה: קולטים מספר בין 1 ל-10 ומציגים את המילה המתאימה לו. בשרשרת if-else זה דורש הזחות רבות ומסורבל לקריאה.
2. מתי מחליפים: רק כשכל התנאים בודקים את אותו משתנה ומשווים אותו לערכים. טווחים, כמו גדול מ-8, לא מתאימים ל-switch.
3. המבנה: switch (num), ואחריו case לכל ערך. בסוף default לערך שלא נמצא באף case.
4. אפקט מפל המים: בלי break הקוד ממשיך לכל ה-case שמתחתיו. לכן כל case מסתיים ב-break, שיוצא מה-switch.
5. סוגי הערכים: מספרים שלמים, תווים, מחרוזות וגם enum, שייילמד בהמשך. מספר עשרוני לא מתאים.
שימו לב
- ערך שמופיע פעמיים באותו switch אסור.
- המשתמש יכול להקליד ערך לא צפוי, ולכן ה-default חשוב לטיפול בשגיאה.
switch מקצר בדיקה של ערך אחד מול רשימת אפשרויות, כשכל case מסתיים ב-break.
השיעור הבא בקורס: תרגול על Switch

פרקי ההרצאה: Switch

  1. 00:00

    מבוא: בחירה בין הרבה מספרים עם תנאים

  2. 01:24

    הצגת המספר שהוזן בעזרת if-else

  3. 03:19

    קיצור קוד עם else if

  4. 04:40

    הרצת התוכנית ובדיקת השגיאה

  5. 05:36

    מנגנון switch ומתי הוא מתאים

  6. 06:34

    מגבלות switch: השוואה לאותו משתנה בלבד

תמלול ההרצאה: Switch

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

  1. 00:02

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

  2. 00:31

    אז ה-use case שלנו זה פשוט מאוד אנחנו רוצים לקלוט מספר מהמשתמש, בואו נאמר למשתמש please enter a number והמספר שאנחנו רוצים לקלוט זה 1 2 10. נגיד לו please enter a number between 1 and 10, נוריד כאן את ה-ln, נבצע int num, console,

  3. 01:04

    אוי אין לי פה את ה-console, בואו נגדיר scanner console שווה new scanner system.in ויש לנו כאן console.close ואנחנו עכשיו יכולים לקלוט על ידי next int את המספר וה-use case הוא פשוט מאוד בואו נציג את אותו מספר שהיוזר הכניס אבל על ידי השם של המספר זאת אומרת שאם היוזר מכניס אחד אני רוצה להציג

  4. 01:39

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

  5. 01:50

    אם num שווה ל-1. אוקיי, מה אני רוצה להציג? sysout 1. עכשיו יש לנו אלס, ובתוך האלס אנחנו יכולים if num שווה time sysout 2. אין בעיה.

  6. 02:10

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

  7. 02:30

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

  8. 02:59

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

  9. 03:19

    אז אנחנו יכולים לעבור למצב הזה שאנחנו עושים if else, ואז זה חוסך לנו המון indentation. אנחנו יכולים לומר כזה דבר:

  10. 03:30

    אם num שווה 1, תדפיס לי 1, else if num שווה 2, תדפיס לי 2. ובואו נבצע את כולם כאן: 3, 4, 4, 5, 6, 7, 8. בואו נדפיס כאן, אנחנו ב-3, 4, 5, 6, 7, אני רואה שעשיתי בטעות עד 7, 8, 9, 10 ועוד אלס 1 עבור הודעת שגיאה.

  11. 04:00

    אז יש לנו פה את 8, יש לנו 9 ויש לנו 10. אני בכוונה רוצה להראות קוד בומבסטי כזה בשביל שתראו איך סוויץ' יכול להקל עלינו. בואו נעביר את הקונסול לכאן ויש לנו פה 3, יש לנו 4, 5, 6, 7, יש לנו 8, 9 ו-10, כאשר בהודעת השגיאה,

  12. 04:39

    Error, Please enter 1, 2, 10 only. בואו נבדוק את זה. הלוגיקה אמורה להיות נכונה, בואו נריץ ויש לנו פה Please enter a number בין 1 ל-10 ואנחנו מחליפים 7 ואני רואה 7, בואו נריץ שוב פעם, נכניס 1, אני רואה 1, בואו נריץ שוב פעם,

  13. 05:11

    8, 8, 10 מציג לנו 10 וכדומה, אנחנו יכולים לבדוק כל מספר עובד. נכניס משהו שהוא לא הגיוני, 89 הוא לא בין 1 ל-10, נקבל 0, please enter only 1 to 10. זאת אומרת הלוגיקה עובדת אבל בואו נראה, את מנגנון הסוויץ', איך הוא יכול לקצר לנו את הקוד בצורה משמעותית.

  14. 05:40

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

  15. 06:01

    כלומר, מנגנון סוויץ' יכול להחליף רק את המצב הבא: א', כל אחד מהE-fail, C-fail, C-fail בודק את תו המשתנה. אני לא יכול לכתוב פה מנגנון switch כאשר האיף הראשון בודק את A והאיף השני בודק את B והאיף השלישי בודק האם C שווה ל-D וכו'.

  16. 06:26

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

  17. 06:46

    אם לדוגמה אני אומר האם NAM גדול מ-8, אחרת אם NAM קטן מ-19, כל הדברים האלה אני לא יכול להחליף אותם במנגנון סוויץ'. מנגנון סוויץ' יכול להחליף רק מצב שבו בודקים EFALS, EFALS, EFALS, EFALS על אותו משתנה ורק השוואות.

  18. 07:06

    אתם יכולים להגיד רגע, מתי זה נדרש?

ההרצאה הקודמת: תרגול על Logical Operators

ההרצאה הבאה: תרגול על Switch

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

  • Switch to iframe
  • משפט Switch, Case - חלק 1
  • ביטויי Switch Case
  • ניהול Virtual Switch

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

  • קורס מבוא ל-QA - מידע חשוב לבודק תוכנה
  • קורס פוסטמן - Postman - בדיקות לאתרי אינטרנט - API
  • קורס Robot Framework - בדיקות QA ממשק גרפי
  • קורס סלניום בסיסי - בדיקות אוטומטיות - Selenium
  • קורס סלניום מתקדם - CI/CD - Continues Integration
  • קורס מייבן - Maven