
תנאי ? ערך אם true : ערך אם false. האופרטור מחזיר ערך אחד, שנכנס למשתנה או לביטוי.bonus = salesAmount * (salesAmount >= 5000 ? 0.1 : 0.05);. שורה אחת במקום שבע.System.out.println, בלי משתנה ביניים. בדוגמה של ספרים שנמכרו: 100 ומעלה מציג Amazing, ואחרת Keep Going.הטקסט המלא של הדקות הראשונות בהרצאה «Ternary Operator» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לנושא האחרון בנוגע לתנאים והנושא הזה נקרא אופרטור טרינארי או באנגלית טרנארי אופרטור יש לזה גם שם שנקרא משפט תנאי מקוצר בואו נבין מה זה אומר בכדי להבין מה זה בואו נראה איזשהו סנאריו מסוים שהאופרטור הזה פשוט יותר מתאים לו מאשר בניית הסנאריו הזה באיף אלס רגיל.
בואו נניח שאנחנו רוצים לבקש מהמשתמש איזשהו נתון והנתון שלנו זה please enter amount of sales for today. זאת אומרת אנחנו רוצים שהמשתמש יכניס לנו כמה מכירות הוא ביצע.
נניח עובד חברה בואו נקלוט את זה לתוך דאבל נקרא לזה sales amount יש לנו קונסול נקסט דאבל ואנחנו רוצים עכשיו לייצר בונוס עבור המשתמש עבור האותו עובד אנחנו רוצים לחשב כמה בונוס מגיע לו וכמובן הבונוס מה שמגיע לו זה בהתאם למכירות שהוא ביצע אז הנה יש לנו פה משתנה בונוס ואנחנו רוצים לבצע דבר כזה במידה והsales amount גדול שווה ל-5000 אז
זה אומר שהוא שיחק אותה ביצע הרבה מכירות כמובן שהבונוס שלו יהיה יותר גדול. אז sales amount שווה או ליתר דיוק בונוס שווה לsales amount כפול 1 או בוא נגיד אפילו 10%.
זאת אומרת שהבונוס עצמו שווה 10% מסך המכירות אם לא קטן מ-5,000 אז הבונוס לא שהוא לא יקבל בונוס אבל הוא יקבל רק 5% זה בעצם מה שאנחנו רוצים לבצע ובואו נדפיס לו you've got an extra dollar bonus בצורה כזאת קודם כל בואו נבדוק לא אמורה
להיות בעיה עם המערכת הזאת נריץ את זה enter please enter amount of sales for today ובואו נניח שהוא הוא מכניס 3000 אז אנחנו רואים שהוא קיבל 150 שזה באמת 5% אם זה היה 10% זה היה כמובן 300. בואו נריץ את זה שוב ונניח שהוא מכניס 6000 אז הנה הוא קיבל 600 דולר בונוס שזה באמת 10% זאת אומרת התוכנית עובדת מה קורה אם הוא מכניס 5000 אז כמובן זה שייך לקטגוריה
של גדול או שווה ולכן הוא ירוויח 500 דולר בונוס וזה נראה הגיוני לגמרי וזה אכן נכון אין עם זה שום בעיה אבל בואו נסתכל רגע על המבניות שיש כאן יש פה איזושהי בדיקה לא משנה מה ואז יש if ו-else קודם כל אין פה if ואז else else else או if else if else if else רק if ו-else אחד ויחיד כמו כן יש לנו הכנסת ערך גם ב-if וגם ב-else לאותו המשתנה רק אם זה הדיזיין שאנחנו רוצים אנחנו רוצים לבצע
איף אלס ולא לדוגמה רק איף אלס ויש פה הכנסת מידע כלשהו לאותו המשתנה גם באיף וגם באלס אז אנחנו יכולים טיפה לשנות את הקוד הזה ולקצר אותו על ידי שימוש באופרטור טרינרי בואו ניקח את כל הקטע קוד הזה נרווח פה טיפה ניקח את כל הקטע קוד הזה ונשים בהערה ונראה איך את כל השורות האלה סיימו לב כמה שורות יש פה אחת שתיים שלוש
3, 4, 5, 6, 7 שורות אנחנו עושים בשורה אחת והקוד אומר כזה דבר בונוס שווה ופה מה אני בעצם רוצה להכניס לו אחד משני תוצאות או sales amount כפול 0.1 או sales amount כפול 0.05 במה זה תלוי תלוי בתנאי הזה מה אומר אופרטור טרינרי בואו רגע ניפטר מהשורה הזאת.
אופרטור טרינארי יש לו מבנה כזה. מה אנחנו רואים כאן? אנחנו רואים פה שיש פה איזה סוגריים, דרך אגב אנחנו לא באמת חייבים סוגריים אבל קל להבין את זה עם הסוגריים כרגע.
בתוך הסוגריים אנחנו רושמים תנאי בולעני ואז יש פה סימן שאלה ויש כאן שני חלקים החלק הזה נקרא true part ואז נקודותיים והחלק הזה נקרא false part והאופרטור אומר כזה דבר אני כאופרטור מבצע פעולה ומחזיר ערך, זה כל אופרטור עושה.
מה הפעולה שהוא עושה? הוא בודק את התנאי הבוליאני. אם התנאי הזה true אז הוא מחזיר את הערך הזה שנמצא ב-true part. אם התנאי הזה הוא false אז הוא מחזיר את הערך הזה שנמצא ב-false part.
כנראה שאנחנו נרצה לבצע איזושהי השמה למרות שאפשר להשתמש איתו גם בדרכים אחרות ולהחניף אותו לאיזשהו משתנה. מה ייכנס לתוך המשתנה? או מה שכתבנו פה או מה שכתבנו פה כתלות בתנאי.
התנאי הזה הוא true, זה מה שיוחזר, התנאי הזה הוא false, זה מה שיוחזר, זה כל האופרטור. אז כל מה שאנחנו רוצים לעשות זה בונוס שווה, התנאי שלנו זה בדיוק התנאי שהיה כתוב פה.
בואו נשים את זה כאן ואז אנחנו רוצים לשים סימן שאלה ולשאול את השאלה הזאת, האם sales amount גדול שווה ל-5000? אם כן, כל זה מה שאנחנו רוצים שהוא יחזיר לנו.
נקודותיים זה חלק מהאופרטור. אם לא, כל זה מה שאנחנו רוצים שהוא יחזיר לנו. נשים פה נקודה פסיק כי אנחנו בעצם בסוף נקודה.
בונוס כמובן אני צריך להגדיר אותו, נגדיר אותו כדאבל בונוס. שימו לב ששבע השורות האלה הפכו להיות שורה אחת. הגדרנו משתנה בונוס, אנחנו בודקים תנאי, אם התנאי הזה הוא true זה הערך שלו, אם התנאי הזה הוא פולס זה הערך שלו.
בואו נבדוק קודם כל את הקוד הזה. נריץ, הנה השאלה שאנחנו נשאלים, נכניס 4000 וקיבלנו רק 200 שזה 5 אחוז. נריץ, נכניס 6000 והנה קיבלנו 10 אחוז, 600 דולר.
זאת אומרת שזה עובד פרפקט. בשורה אחת הצלחנו לבצע משהו שלפני זה לקחנו כמה שורות קוד. הם יכולים להגיד שהקוד הזה אולי הוא יותר ברור אבל מהר מאוד מתרגלים לתחביר הזה.
עכשיו אני רואה שיש כאן את שני אלה שהם חוזרים על עצמם גם באזור של ה-true וגם באזור של ה-false. האם אנחנו יכולים לאחד אותם מבחוץ?
בואו נראה. ניקח את השורה הזאת, שכפל אותה בשביל שיהיה לנו את כל הקוד ומה שאנחנו רוצים לעשות זה להוציא את