الزيادة والنقصان اللاحقة
جزء من قسم الأساسيات في رحلة C++ على Coddy. الدرس 19 من 74.
في الدرس السابق، تناولنا عاملي الزيادة (++) والنقصان (--). لهذَين العاملَين شكلان: prefix وpostfix.
تُكتب الصيغة prefix قبل المتغير (على سبيل المثال، ++x أو --x)، وتُكتب الصيغة postfix بعد المتغير (على سبيل المثال، x++ أو x--).
معرفة الشكل الذي يجب استخدامه أمر مهم عمليًا. على سبيل المثال، في لعبة ما قد تتتبّع نقاط اللاعب باستخدام score++ بعد كل إصابة، أو تستخدم --lives لتعكس فورًا فقدان حياة قبل التحقق مما إذا كانت اللعبة قد انتهت. في الحلقات، يمكن أن يؤثر الاختيار بين prefix وpostfix في القيمة المستخدمة داخل تعبير قبل التحديث أو بعده.
الفرق بين الصيغتين دقيق لكنه مهم:
- صيغة prefix: تزيد/تنقص قيمة المتغير ثم تُرجع القيمة الجديدة.
- صيغة postfix: تُرجع القيمة الحالية للمتغير ثم تزيدها/تنقصها.
إليك مثالًا لتوضيح الفرق:
int x = 5;
int y = x++;
// y = 5, x = 6 (postfix: y يحصل على القيمة الأصلية، ثم يتم زيادة x)
int a = 5;
int b = ++a;
// b = 6, a = 6 (prefix: يتم زيادة a أولاً، ثم يحصل b على القيمة الجديدة)في الحالة الأولى، تُسنَد إلى y القيمة الأصلية لـ x (5)، ثم تتم زيادة x إلى 6. في الحالة الثانية، تتم زيادة a أولًا، ثم تُسنَد قيمتها الجديدة (6) إلى b.
ينطبق المنطق نفسه على معامل الإنقاص:
int x = 5;
int y = x--;
// y = 5, x = 4 (postfix: y تحصل على القيمة الأصلية، ثم يتم إنقاص x)
int a = 5;
int b = --a;
// b = 4, a = 4 (prefix: يتم إنقاص a أولاً، ثم تحصل b على القيمة الجديدة)التحدي
مبتدئأُعطيت شفرة تتضمن تهيئة x وy وz. (لا تحذف هذه lines!)
مهمتك هي استخدام معاملي الزيادة/النقصان لتنفيذ العمليات التالية، بالترتيب التالي:
- استخدم معامل الزيادة postfix لإسناد القيمة الحالية لـ
xإلىaثم زد قيمةx. - استخدم معامل النقصان prefix لإنقاص قيمة
yوإسناد قيمتها الجديدة إلىb. - استخدم معامل النقصان postfix لإسناد القيمة الحالية لـ
zإلىcثم أنقص قيمة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المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)الزيادة والنقصانالزيادة والنقصان اللاحقةاختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوصتدرّب بنفسك: مترجم C++ عبر الإنترنت