[15 בפברואר 2009] [15 תגובות]
בשיעור שעבר למדנו על משתנים והפעם נלמד כיצד לבצע פעולות עליהם. הפעולות מתבצעות באמצעות אופרטורים.
אופרטורים חישוביים
ניתן לבצע את הפעולות החישוביות הבאות על מספרים שלמים (int) ומספרים ממשיים (double):
+ | x+y | אופרטור חיבור. חיבור שני מספרים |
- | x-y | אופרטור חיסור. הפחתת ערכו של y מערכו של x |
* | x*y | אופרטור כפל. הכפלת x ב-y |
/ | x/y | אופרטור חילוק. חלוקת x ב-y |
% | x%y | אופרטור שארית. כמה נשאר לאחר שמחלקים את x ב-y |
כאשר מחלקים שני מספרים שלמים (int) מתקבל תמיד מספר שלם. לדוגמה:
int x = 10; int y = 4; int z = x / y; System.out.println(z);
כידוע, 10 (ערכו של x) לחלק ל-4 (ערכו של y) שווה לשתיים וחצי (2.5) אך מכיוון ש-x, y ו-z הם שלמים, התוצאה היא למעשה 2. כל ערך לאחר הנקודה העשרונית נעלם. למעשה, מספיק שאחד מהמשתנים (x, y או z) יהיו מטיפוס int על מנת לגרום לחלוקה מסוג זה. אם נרצה חלוקה של מספרים ממשיים, נגדיר את כל המשתנים מטיפוס double.
דוגמה לאופרטור השארית (ששמו מודולו):
int x = 11; int y = 4; int z = x % y;
4 (הערך של y) נכנס פעמיים בתוך 11 (הערך של x) ולכן השארית היא 3.
אופרטורי השוואה עם תשובה בוליאנית
ניתן להשתמש באופרטורים הבאים על מנת להשוות ערכים של משתנים והתוצאה המתקבלת היא משתנה בוליאני:
סימן | שם | דוגמה לשאלה | תרגום לעברית |
---|---|---|---|
== | שיוויון | if (x==40) | האם x שווה ל-40 ? |
!= | חוסר-שיוויון | if (x!=40) | האם x שונה מ-40 ? |
> | גדול מ- | if (x>40) | האם x גדול מ-40 ? |
>= | גדול שווה מ- | if (x>=40) | האם x גדול או שווה ל-40 ? |
< | קטן מ- | if (x<40) | האם x קטן מ-40 ? |
<= | קטן שווה מ- | if (x<=40) | האם x קטן או שווה ל-40 ? |
לדוגמה:
int x = 10; int y = 5; int z = x / y; boolean answer = (z == 2);
מכיוון ש-10 לחלק ל-5 זה 2 אז הערך של z יהיה 2. ערכו של answer יהיה true מכיוון שההשוואה נכונה.
שימו לב: אופרטור ההשוואה מכיל שני סימני שווה (==) ואילו אופרטור ההשמה מכיל סימן שווה אחד בלבד!
אופרטורים לוגיים
ישנם אופרטורים הפועלים על משתנים בוליאנים ותוצאתם הוא משתנה בוליאני חדש.
! | z = !x | לא (NOT). הופך true ל-flase ו-false ל-ture |
& | z = x & y | וגם (AND). אם x ו-y הם true אזי z יהיה true, אחרת z יהיה false |
| | z = x | y | או (OR). אם x הוא true או y הוא ture אזי z יהיה true, רק אם x ו-y שניהם false אז z יהיה false |
דוגמה:
boolean x = true; System.out.println( !x );
נדפיס את הערך ההפוך ל-x ולכן תודפס המילה false למסך.
סיכום
למדנו לבצע פעולות בסיסיות על המשתנים ו=בעזרת אופרטורים ואנו נשתמש בידע זה בהרחבה בהמשך.
בשיעור הבא, קלט ופלט, נלמד כיצד לתקשר עם המשתמש, לקלוט ממנו מידע ולהציג לו תשובות בהתאם.
יש מצב למדריכים שלך על Javascript?
לצערי לא... הקשר בין Javascript ל-Java הוא בעיקר שהשם שלהם דומה.
אני כרגע מעדיף להתרכז ב-Java.
עקרונית כל מה שנכתב בשיעורים האלו נכון לכל שפות התיכנות כמעט, פשוט הפקודות מעט שונות בין שפה לשפה. רק בשיעורים הבאים נתחיל לגעת בנושאים שייחודיים רק ל-Java.
אישית, הייתי בטוח שמשתמשים ב || כאופרטור or, וב && כאופרטור and.
אחרי שקראתי את המאמר, בדקתי, ואכן, אתה צודק, ניתן להישתמש ב-2 הדרכים הללו.
ובנימה קצת פחות אישית, מאמר מצוין, כל הכבוד!
תודה רבה, השכלתי.
אני אישית גם משתמש בסימן הכפול(&& ו-||) מכיוון שהוא יותר מהיר ובשיעור על פקודת ה-IF (שיעור ההמשך של ה-IF) הסברתי למה.
קודם כל, כל הכבוד ! אני כבר בשיעור השלישי פה ואני לומד ה-מ-ו-ן !!!
אבל למרות שאני לא מבין כל כך, לדעתי ביצעת שגיאות בטבלה הזו.
שים לב לסימן ואז לשאלה.. ביצעת דברים פעמיים כמו בסימן "שיוויון" ובסימן "קטן שווה מ-"
זה אמור להיות ככה לדעתי. ואם אני טועה, אנא תקן אותי :)
@כפיר, תודה על התיקון... הכנסתי את זה לפוסט!
אם מופיע פעמיים && מה ההבדל ? אפשר הסבר ?
ההסבר לכך מופיע בשיעור "פקודת If ב-Java - המשך".
טל, תשמע אני לא הבנתי את החלק עם הboolean והאופרטור הלוגיי. מזה עוזר לי? ניסיתי לכתוב את אחד הדברים שמה וזה לא עשה כלום... יש מצב להסבר? בהתחלה לא הבנתי אז דילגתי על זה והמשכתי אני בערך בן 12 ודיי קשה לי לזכור את כל זה... הגעתי אפילו להתחלה של if אבל אז עצרתי וחזרתי על החומר כשמתי לב שאני לא מצליח הגעתי לחלק שצריך לבנות חידון חשבון פשוט. יש לך אולי טיפ איך אני אזכור את זה טוב? ואני עדיין צריך עזרה ב boolean
תודה
@יותם, על משתנה boolean הוסבר באחד מהמדריכים הקודמים. זהו משתנה שיכול להכיל את אחד משני הערכים הבאים "אמת" או "שקר".
אופרטור לוגי פועל על משתנים מסוג boolean. למשל האופרטור NOT (שסימנו הוא סימן קריאה !) הופך את הערך "שקר" לערך "אמת" וגם הופך את הערך "אמת" לערך שקר.
כלומר:
!אמת == שקר
!שקר == אמת
בשיעור על פקודות if הדברים יתחברו טוב יותר.
רציתי לדעת מה אומר הסימן ! אם הוא נמצא לפני קבוע. שאלה לדוגמא:
מה יתקבל מהביטוי הבא (0 או 1):
4==2!
איך כותבים חזקה ב-java?
אם אני צריך במשתנה מסוג duble רק את החלק העשרוני שבו:נגיד חילקתי 25/10=2.5 ואני צריך את ה5 אחרי הנקודה על מנת לסכום אותו ,איך אני עושה זאת?
לא הבנתי .....
שלום חבר