אופרטורי השוואה מורכבים
הוצג| English | משמעות |
|---|---|
| compound assignment operator/ˈkɒmpaʊnd əˈsaɪnmənt ˈɒpəreɪtə/ | מפעיל הצבה מורכב |
קיצור לעדכון
- עדכון משתנה מערך עצמו הוא נפוץ מאוד ולכן יש לו קיצור.
- אופרטור השמה מורכבת משלב פעולה עם
=. x += 3;פירושו בדיוקx = x + 3;.- המשפחה:
+=,-=,*=,/=,%=.
חמישת האופרטורים
x += 5→ מחבר5לx.x -= 5→ מחסיר5.x *= 2→ doublex.x /= 2→ חלק לפ halvesx(חוקי int חלים).x %= 3→ מחליף אתxבערךx % 3(שארית החלוקה).- כל אחד קורא את הערך הנוכחי, מבצע את הפעולה, ומאחסן את התוצאה בחזרה.
הגדלה והקטנה
x++מוסיף1לx(אותו דבר כמוx += 1אוx = x + 1).x--מחסיר1מx.- אלו נפוצות מאוד במחזוריות כדי להעלות מונה צעד.
- הן משנות את המשתנה בתוך המקום — אין צורך ב
=.
חלים אותם כללי סוגים
- אופרטורי השמה מורכבים כפופים לאותם כללי סוגים כהצורה הארוכה.
int x = 7; x /= 2;נותן3(חלוקת int עדיין חותכת).- שימוש ב
x += 2.5;עלintדורש זהירות — סוג ה-xאינו משתנה. - הקיצור הוא רק קצר יותר; החישוב האריתמטי זהה.
x += 3 זה בדיוק x = x + 3 — כללי הסוגים אינם משתנים. לכן int x = 7; x /= 2; עדיין מחזיר 3 (חילוק שלמים מקוצר), ולא 3.5. מקריבים מורכבים הם רק קיצור; אם הצורה הארוכה תגרום לקיצור או לשפיכת ערך, גם הצורה הקצרה תעשה זאת. ו-x++ זה פשוט x += 1.
מעקב אחר נגדן:
int x = 10;x += 5;→xזה15.x *= 2;→xזה30.x--;→xזה29.x %= 5;→xזה4(29 % 5).
פעולות שיבוץ מורכבות (+=, -=, *=, /=, %=) הן קיצור: x += 3 משמעותו x = x + 3. x++ ו-x-- מוסיפים או מחסרים 1. הן מקיימות את אותם חוקי סוגים כמו הגרסה הארוכה — חלוקה ל-int ב-x /= 2 עדיין תחתכת (truncates).
הזזת נגן
כל אופרטור מורכב מעדכן את x במונו (in place).
x += 3 זה בדיוק כמו...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
השוואה מורכבת היא קיצור עבור x = x + 3.
int x = 10; x += 5; x *= 2; מהו x?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
10 → 15 → 30.
int x = 7; x /= 2; מהו x?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
חלוקת int חותכת: 7/2 = 3.
x++ יש לו את אותו אפקט כמו...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
x++ מוסיף 1, זהה ל-x += 1.
מפעילים משולבים עוקבים אחר אותם כללי סוג כמו הצורה הארוכה (לכן x /= 2 על int גורע שברים).
Difficulty 1/5 · 100 coins + a small bonus on first completion today
הצורה המקוצרת אינה משנה את החישוב — חילוק של int עדיין גורע שברים.