
Console.Write מציג הנחיה בלי לרדת שורה, Console.ReadLine קורא את התשובה, ו-Convert.ToInt32 ממיר אותה למספר.if מתבצע כשהתנאי נכון, ואחרת מתבצע בלוק של else. בדוגמה: גיל קטן מ-18 מקבל קולה וספרייט, ומי שמעל מקבל מוחיטו ו-B52.< לעומת <= משנה את התוצאה בגיל הגבולי. לכן כשמחליטים מי שייך לאיזו קבוצה, חשוב לבחור נכון את האופרטור.else. בדוגמה, מעל גיל 80 מקבלים מיץ תפוזים.else if מונע את הכפילות.== בודק שוויון ו-!= בודק שונות. בדוגמה נבדק אם הגיל שווה ל-30 כדי לתת מתנה.&& (וגם) דורש שכל התנאים יתקיימו, ו-|| (או) דורש שאחד מהם יתקיים. בדוגמה: מי שמתחת לגיל 18 או נהג מקבל קולה.? : כותב בדיקה בשורה אחת. אם התנאי נכון מוחזר הערך שלפני הנקודתיים, ואחרת הערך שאחריהן.if (age < 18) { ... } else if (age > 80) { ... } else { ... }string result = age < 18 ? "קולה וספרייט" : "מוחיטו ו-B52";הטקסט המלא של הדקות הראשונות בהרצאה «תנאי If - Else - חלק 2» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום וברוכים הבאים להרצאה על משפטי בקרה. נלמד if-erse ומה זה conditional operator. זאת הולכת להיות הרצאה מעניינת. אנחנו צריכים לדעת שתוכניות המחשב מתבצעות כרצף של הוראות.
מחשב מקבל רצף של הוראות של פקודות שהמתכנת קבע לו מראש, וזה מתבצע אחד אחרי השני. כמו שראינו לפני כן שכל פקודה צהובה מתבצעת אחד אחרי השנייה ברצף, אבל לפעמים יש לנו תנאי מסוים ואנחנו רוצים לא לבצע חלק מהפקודות.
זאת אומרת שמשפטי If-Else משנים את הרצף הפעולות הרגיל. הם מחליפים את הרצף פעולות הרגיל של התוכנית וגורמים לכך שתוכנית לא תבצע את הפעולות ברצף הכתוב.
חלק מהפקודות מתבצעות וחלק אחר לא מתבצעות, תלוי בתנאי מסוים. כדי לדעת איזה פקודה לבצע ואיזה פקודה לא לבצע, אנחנו משתמשים ב-if earth.
אם תנאי מתקיים, תעשה פקודות מסוימות. אם תנאי לא מתקיים, תעשה פקודות אחרות. וזה חלק מובנה מתוך שפת התכנות שלנו. טוב מאוד, אחרי שהבנו את הרעיון של if earth, בואו נראה באיזה מקרים נשתמש בהם.
לדוגמה, בתוכנית של כספומט. המשתמש הכיש סיסמה לא נכונה כשהכניס את הכרטיס, אז הוא ממשיך למסך הבא אם הוא הכניס סיסמה נכונה, ואם הוא לא הכניס סיסמה נכונה, אז הוא מקבל הודעה שהסיסמה היא שגויה.
דף כניסה לאתר האינטרנט. משתמש מזין את הפרטים הנכונים. אם הוא הזין את הפרטים הנכונים, הוא נכנס לאתר האינטרנט. אחרת הוא מקבל הודעת שגיאה.
וסדל להכנסת אימייל, נניח בטופס כזה, התקשרות. בדיקה אימייל שהמשתמש הכניס, זה אימייל חוקי שיש לו שטרודל ויש לו נקודה. בקיצור שהכתובת אימייל היא חוקית.
אז באופן כללי כל הזמן משתמשים ב-if-else, כל הזמן בודקים אם תנאי מתקיים, אז עושים משהו אחד, אם תנאי לא מתקיים עושים משהו אחר. ואנחנו הולכים עכשיו לעשות דוגמאות ולראות את כל האופרטורים האלו ולראות את ה-if-else.
ונעשה תוכנת דוס פשוטה לברים, נעשה תוכנה לברים, כן, שמציעה תפריט לבן אדם לפי הגיל שלו. נעשה פרויקט חדש, תוכנה חדשה, דוסית, בינתיים אנחנו בתוכניות דוס פשוטות, אחרי זה נתקדם לתוכניות Windows ואתרי Web, בינתיים אנחנו בקונסול אפליקיישן בדוס, ונכתוב תוכנה לברים, תוכנה נקראת ברים.
יופי. מה התוכנה הזאת צריכה לעשות? דבר נורא פשוט, לבקש ממך את הגיל, ואחרי שאתה מכניס לה את הגיל להגיד לך מה התפריט שמתאים לך לגיל שלך.
טוב מאוד. אז נתחיל בזה שאנחנו קולטים מהמשתמש את הגיל שלו. אז אנחנו עושים סטרינג input, טקסט שהמשתמש מכניס לי, סטרינג input, לקחנו תא בזיכרון, קראנו לו input.
לתוך התא בזיכרון הזה אנחנו נקרא מהמקלדת את הגיל שלו. קונסול, אמרנו קונסול זה המסך השחור של הדוס, read line.
תקרא לי מהמקלדת את הגיל שלו. יופי, לפני שאני עושה read line, אני תמיד עושה right line. right line אומר לו מה אני רוצה שיכניס. הדבר הזה סתם יהבהב לי בחלון שחור והבן אדם לא יבין מה רוצים ממנו.
אז לפני ה-read line עושים תמיד קונסול right line. קונסול right line, נכניס לי, אני עושה רייט כי אני לא רוצה שיראה את שורה, input enter your age, enter enter, סליחה, enter your age please, יופי, enter your age please, וזה יישאר באותה שורה כי זה רייט ולא רייטליין, ויחכה שהוא
יכניס משהו במקלדת, איך שהוא יכניס משהו מהמקלדת זה ייכנס לתוך input, יופי. עכשיו אנחנו צריכים לבדוק האם הגיל שלו קטן ממשהו, גדול ממשהו, אבל כרגע זה יושב אצלנו כסטרינג, כסטרינג זה מה שנקלט מהמקלדת.
אנחנו צריכים להפוך את זה למספר בשביל לבדוק קטן גדול. אוקיי, אז בואו נעשה משתנה שקוראים לו Age גיל ונגיד לו Age שווה לקונברט, לקונברט להמרה toInt של אינפוט.
זאת אומרת צריך לעשות המרה ל-input וכל מה שהתקבל תכניס לתוך המשתנה שקוראים לו Age. יפה מאוד, אנחנו בשלב הזה בואו נבדוק שהתוכנה עובדת, שהכל עובד control F5 לראות שזה עובד enter your age אני אומר שהגיל שלי זה נניח אני בן 32 enter אומר press any to continue זה אומר שהתוכנה הסתיימה בהצלחה שימו לב לחצתי control F5 אז זה עצר פה אם הייתי עושה F5
זה היה נסגר אז תראו כשעושים ככה זה יכול להיסגר אחרי זה למה כי צריך לעשות control F5 טוב מאוד אז עד עכשיו ההתחלה שלנו הייתה טובה ונכונה, עכשיו אנחנו מתחילים לבדוק מה הגיל שלו.
אז שימו לב איך כותבים את זה. If, אני אומר לו מה לבדוק, תכף תבדוק משהו, ואחרי שהוא יבדוק האם זה נכון או לא נכון, יש לו פה בלוק קטע קוד שהוא הולך לבצע בין הסוגריים האלו.
Else, אלס אומר שאם התנאי לא היה נכון, הוא יבצע קוד אחר. שימו לב עוד פעם, זה המבנה. If תנאי מסוים, פה בסוגריים יהיה תנאי מסוים, לדוגמא h קטן מ-18, אם הגיל שלך מתחת ל-18.
זה תנאי מסוים. אם התנאי הזה מתקיים, מתבצע הבלוק הזה, אוקיי? יש כאלה שאוהבים להכניס אותו טיפה פנימה, כדי שיהיה ברור.
אם התנאי הזה לא יתקיים, כל הבלוק הזה לא מתבצע, כי התנאי לא יתקיים. ואז הולכים ל-else, ישירות קופצים ל-else, ומבצעים את הפקודות שיש פה. איזה פקודות?
אנחנו נעשה פקודות פשוטות, קונסול רייטליין תדפיס לו על המסך הגיל שלו מתחת לשמונה עשרה התפריט שלו יהיה או קולה כן או ספרייט זה מה שמותר לו אוקיי ואם הגיל שלו מעל שמונה עשרה אתם רואים h מעל שמונה עשרה אנחנו מוצאים לו כבר משקאות יותר יפים כמו מוחיטו ובי חמישים ושתיים בי פיפטי דו יופי טוב בואו נראה שהתוכנה שלנו עובדת נעשה קונטרול אף חמש ונראה שהתוכנה עובדת.
מה הגיל שלנו? נניח שהגיל שלנו 14, 16. הנה, הוא אומר לי: קולה וספרייט. הוא לא נתן לי את המשקאות האלכוהוליים, טוב מאוד. התוכנה שלנו שומרת חוק.
ועוד פעם אני מריץ אותה, קונטרול F5, ניתן לו גיל 19. גיל 19, מה יקרה בגיל 19? הנה, הוא נותן לנו מוחיטו ו-B52. טוב מאוד, טוב מאוד.
אז התוכנה שלנו עובדת. בואו נראה מה קורה בגיל 18 בדיוק. חבר'ה, בואו נראה מה קורה בגיל 18. מה קורה בגיל 18 לפי התוכנה שלנו? התוכנה שלנו נתנה לנו משקאות אלכוהוליים.
מה זאת אומרת? זה אומר שהיא הגיעה לפה, לפה, לקטע קוד הזה. למה? כי התנאי אומר קטן מ-18. אם זה קטן מ-18, אם אני בן 18, זה לא קטן מ-18.
אוקיי, אבל המנהל של המקום החליט שאנחנו נותנים משקאות אלכוהוליים רק מ-18 ומעלה, זאת אומרת לבני שמונה עשרה עדיין לא נותנים אז אני רוצה שבשמונה עשרה זה עדיין ייכנס לקולה וספרייט ככה המנהל של המקום החליט או זה שמשלם לי כסף על התוכנה שלו על התוכנה הזאת אז זה איש קטן משמונה עשרה הוא צריך להיכנס
לפה לקולה וספרייט אז כדי שהתנאי הזה יהיה אמיתי גם בגיל שמונה עשרה יש לי שני טריקים או שאני אומר שזה קטן מ-19 ואז קטן מ-19 שמונה עשרה ייכנס לפה או משהו יותר יפה קטן שווה אני יכול לעשות אני יכול לעשות קטן שווה, זאת אומרת, התנאי הזה, התנאי הזה,
התנאי הזה הולך להיות אמת גם כשזה קטן וגם כשזה שווה. תראו מה קורה, כשזה קטן או שווה זה אומר שמונה עשרה זה שווה, הוא ייכנס לפה. בואו נראה, תראו את זה, הכי קל לראות את זה. שמונה עשרה עכשיו נכנס לכל הווספרייט, אני מוריד את השווה, הוא שמונה עשרה נכנס למוחי טוב, טוב מאוד.
אז קטן שווה אומר שהתנאי הזה אמת גם כשזה שמונה עשרה, אוקיי? יופי. אז יש קטן שווה, בואו נעשה קטן, קטן בלבד, ניתן לבני שמונה עשרה את האלכוהולים.
עכשיו שימו לב, עבר זמן מה, הכל עבד מצוין, ואז פתאום הגיעה בקשה חדשה. התברר שהגיעו בני שמונים למועדון, ויש להם תפריט שונה, אלכוהול כבר לא בריא להם.
אז אנחנו רוצים לעשות עוד בדיקה, שהבן אדם הזה הוא לא מעל גיל שמונים. אז אנחנו רוצים לעשות עוד בדיקה, בואו נעשה עוד בדיקה. עכשיו יש לנו שתי טריקים איך לעשות את הבדיקה הזאת.
אני אראה לכם את שתי הדרכים. אני יכול להוסיף פה בקוד if age גדול מ-80, ואם גיל גדול מ-80, אני יכול לעשות דבר כזה שאני מדפיס לו קונסול רייטליין קונסול רייטליין מה מותר בגיל 80 מיץ תפוזים מיץ תפוזים כן איך זה נקרא אורנג'וס אסור להם מוגז אפילו אורנג'וס ג'ויס כן ככה
אוקיי, אורנג'וס, זה, אוקיי. והקוד הזה, בוא נראה שזה באמת עובד, בוא נתחיל מזה. בוא נבדוק שזה עובד, אני עושה 81, תראו מה קרה פה.
הוא הדפיס להם גם מוחיטו וגם אורנג'וס. זה אומר שהקוד הזה עבד, שכתבתי באמת גיל 80 אורנג'וס, אבל הוא עדיין הדפיס להם את המוחיטו הזה.
למה הוא הדפיס להם את המוחיטו הזה? למרות שלא רצינו. כי שימו לב, המחשב מבצע את הפקודה הזאת, זה כפקודה אחת גדולה, בלוק אחד גדול ופה כתוב אם גיל מתחת לשמונה עשרה תעשה ככה ואם גיל גדול משמונה עשרה אחרת תעשה מוחיטו ושמונים באמת גדול משמונה עשרה אז הוא מבצע את החלק הזה בכל מקרה חברה זה
לא מה שתכננו חוץ מזה חוץ מזה יש גם עוד בעיה אם בן אדם הוא מתחת לגיל שמונה עשרה אז ביצענו את הקוד הזה אז לא צריך לעשות עוד פעם בדיקה שהוא מעל גיל שמונים יש לנו בדיקה מיותרת כבר בדקנו פעם אחת שהוא מתחת לשמונה עשרה אז יש פה בעיה בקוד הזה, קודם כל הוא לא עובד
טוב. הוא מדפיס לי שתי תוצאות לא נכונות, כמו ששמתם לב, כן? אני לא אסגור את זה עכשיו. א', הוא מדפיס לי שתי תוצאות לא נכונות, שתיים, הוא עושה שתי בדיקות, הוא עושה בדיקה מיותרת.
יופי, איך אפשר לעקוף את הבעיות האלו? איך אפשר לפתור את זה? גם לזה יש כמה טריקים, אבל אני ישר אלך לפתרון שרציתי להראות לכם מלכתחילה.
רציתי לשדרג את ה-else הזה ולהגיד לו, בתוך ה-else הזה, בוא נשדרג את ה-else הזה. אלס יכול להכניס עוד פעם if, כן? עוד פעם if.
להגיד, if h גדול מ-80, תעשה את זה, אלס, ככה, תראו את זה. if קטן מ-18, תעשה את זה, אם לא, תבוא לפה. הגעת לפה, תבדוק האם גיל מעל 80, עשית את זה.
אם גם זה לא יתבצע, אז תדפיס לו תביא 52. טוב, בואו נריץ את זה, נבדוק שזה באמת עובד, כל הסיפור הזה. עושה קונטרול F5, 81. הנה, היא הדפיסה לי רק אורנג'וס. בואו נעבור שורה שורה ונראה איך זה באמת מתבצע, הקוד הזה.
נשים פה breakpoint כדי לעצור בשלב הזה, ונעשה פה דיבאג, נכניס לו פה, פה נכניס לו גיל, דווקא נכניס לו גיל 54. בואו נבדוק מה קורה בגיל 54. הנה הוא עצר לי פה, age 54, קטן מ-18.
האם 54 קטן מ-18? לא, 54 לא קטן מ-18, ולכן אנחנו קופצים ישר ל-else. לא נכנסנו לפה, כי גיל 54 לא צריך לכתוב לו כלה.
טוב מאוד. האם 54 גדול מ-80? לא. עוד פעם, קפצנו עכשיו לפה. נקסט, תדפיס לו מוחיתו ובי 52. או, יפה מאוד.
גיל 54, הדפיס כמו שצריך, מוחיתו ובי 52. טוב מאוד. נסיים את התוכנה הזאת, היא ניתנה לרוץ עד הסוף. טאפלי עד הסוף.
אוקיי, בוא נעשה עכשיו בדיקה עם גיל 81. גיל 81, מה קורה בגיל 81? האם 81 קטן מ-18? לא. קופצים ל-else.
האם 81 גדול מ-80? כן, ונכנסנו לתוך הקוד שלנו, טוב מאוד. עכשיו הדפסנו על המסך מצטפוזים, מצוין, מצוין. טוב מאוד חבר'ה, זה בדיוק מה שרצינו.
עכשיו נשאר לנו רק לטפל בבני 80, בני 80 גם צריכים לקבל מצטפוזים. למה? תראו מה קורה עכשיו לבן 80 שמגיע, בדיוק בן 80 מגיע, הוא מקבל אצלנו אלכוהול.
חבר'ה, זה לא בסדר, הוא צריך לקבל מצטפוזים,