הגדלה/הקטנה לאחר הפעולה
חלק מהיחידה יסודות במסלול ה-C++ של Coddy. שיעור 19 מתוך 74.
בשיעור הקודם למדנו על אופרטורי ההגדלה (++) וההקטנה (--). לאופרטורים האלה יש שתי צורות: קידומת וסיומת.
צורת הקידומת נכתבת לפני המשתנה (למשל, ++x או --x), וצורת הסיומת נכתבת אחרי המשתנה (למשל, x++ או x--).
חשוב לדעת באיזו צורה להשתמש בפועל. לדוגמה, במשחק אפשר לעקוב אחר הניקוד של שחקן באמצעות score++ אחרי כל פגיעה, או להשתמש ב---lives כדי לשקף מיד אובדן של חיים לפני שבודקים אם המשחק הסתיים. בלולאות, הבחירה בין קידומת לסיומת יכולה להשפיע על הערך שבו משתמשים בביטוי לפני העדכון או אחריו.
ההבדל בין שתי הצורות עדין אך חשוב:
- צורת קידומת: מגדילה/מקטינה את המשתנה ואז מחזירה את הערך החדש.
- צורת סיומת: מחזירה את הערך הנוכחי של המשתנה ואז מגדילה/מקטינה אותו.
הנה דוגמה שממחישה את ההבדל:
int x = 5;
int y = x++;
// y = 5, x = 6 (סיומת: y מקבל את הערך המקורי, ואז הערך של x גדל ב-1)
int a = 5;
int b = ++a;
// b = 6, a = 6 (קידומת: תחילה הערך של a גדל ב-1, ואז b מקבל את הערך החדש)במקרה הראשון, הערך המקורי של x (5) מוקצה ל־y, ולאחר מכן x גדל ל־6. במקרה השני, a גדל תחילה, ולאחר מכן הערך החדש שלו (6) מוקצה ל־b.
אותו היגיון חל גם על אופרטור ההפחתה:
int x = 5;
int y = x--;
// y = 5, x = 4 (סיומת: y מקבל את הערך המקורי, ואז הערך של x מופחת ב-1)
int a = 5;
int b = --a;
// b = 4, a = 4 (קידומת: תחילה הערך של a מופחת ב-1, ואז b מקבל את הערך החדש)אתגר
מתחיליםניתן לך קוד עם אתחולים של x, y ו-z. (אל תמחק את השורות האלה!)
עליך להשתמש באופרטורי הגדלה והקטנה כדי לבצע את הפעולות הבאות, בסדר הזה:
- השתמש באופרטור הגדלה postfix כדי להציב ב-
aאת הערך הנוכחי שלx, ואז להגדיל אתx. - השתמש באופרטור הקטנה prefix כדי להקטין את
yולהציב ב-bאת הערך החדש שלו. - השתמש באופרטור הקטנה postfix כדי להציב ב-
cאת הערך הנוכחי שלz, ואז להקטין אתz.
לאחר ביצוע הפעולות האלה, הדפס למסוף את הערכים של a, b, c, x, y ו-z בפורמט הבא:
a: [value of a]
b: [value of b]
c: [value of c]
x: [value of x]
y: [value of y]
z: [value of z]נסו בעצמכם
#include <iostream>
int main() {
int x = 10;
int y = 20;
int z = 30;
int a, b, c;
// כתבו את הקוד שלכם למטה
// אל תשנו את השורות למטה
std::cout << "a: " << a << std::endl;
std::cout << "b: " << b << std::endl;
std::cout << "c: " << c << std::endl;
std::cout << "x: " << x << std::endl;
std::cout << "y: " << y << std::endl;
std::cout << "z: " << z << std::endl;
return 0;
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 1
אופרטורים אריתמטייםאופרטור מודולוהגדלה/הקטנההגדלה/הקטנה לאחר הפעולהקיצורים אריתמטייםאופרטורי השוואההשוואת מחרוזותתרגלו בעצמכם: קומפיילר C++ אונליין