تزايد وتناقص الأعداد
تستخدم علامة الجمع المزدوجة ++ في التزايد المتوالي للأعداد بمقدار واحد صحيح في كل مرة، وبنفس الطريقة تستخدم علامة التناقص المزدوجة — في التناقص المتوالي للأعداد بمقدار واحد صحيح في كل مرة، فعندما تقوم بزيادة قيمة متغير بمقدار واحد صحيح، أو تقوم بإنقاص قيمة هذا المتغير بمقدار واحد صحيح في مرة واحدة، تستخدم علامة التزايد المفردة وعلامة التناقص المفردة كما في الكود التالي:
myVarlable = myVarlable+1;
myVariable = myVariable-1;
ففي السطر الأول من الكود قمنا بزيادة قيمة المتغير myVariable بمقدار واحد صحيح، وفي الكود الثاني قمنا بإنقاص قيمة هذا المتغير بمقدار واحد صحيح، ولكن ذلك تم لمرة واحدة فقط، أما للتزايد والتناقص المتوالي لقيمة المتغير تستخدم علامة التزايد المزدوجة وعلامة التناقص المزوجة، كما في الكود التالي:
myVariable++;
myVariable–;
ففي السطر الأول من الكود السابق تم زيادة قيمة المتغير myVariable بمقدار واحد صحيح بشكل متوالي ومستمر، وفي السطر الثاني تم إنقاص قيمة المتغير بشكل متوالي ومستمر بمقدار واحد صحيح، كما يمكن أيضًا زيادة، أو إنقاص قيمة المتغير بمقدار واحد صحيح بشكل متوالي بوضع علامة الجمع المزدوجة، أو علامة الطرح المزدوجة على يسار أسم المتغير، كما في الكود التالي:
++myVariable;
–myVariable;
ولا يختلف وضع علامة التزايد المزدوجة، أو علامة التناقص المزدوجة على يسار أو على يمين أسم المتغير، فكلتا الحالتين تؤديان إلى نتيجة واحدة، إلا في حالة إذا ما قمت بإجراء عملية حسابية أخرى في نفس الكود، ففي الكود التالي يتم طرح رقم 20 من قيمة المتغير أولًا، ثم بعد ذلك يتم زيادة قيمة المتغير زيادة متوالية بمقدار واحد صحيح.
؛20 -++myVar = myNumber
أما في الكود التالي فتتم الزيادة المتتالية في قيمة المتغير أولًا، ثم يتم طرح 20 من قيمة المتغير، والفارق بين هذا الكود والكود السابق هو وضع علامة الجمع المزدوجة على يسار أسم المتغير، أم على يمين أسم المتغير.
؛20 – myVar = ++myNumber
ولإيضاح الفارق بين وضع علامة الجمع المزدوجة على يسار أسم المتغير، وبين وضع علامة الجمع المزدوجة على يمين أسم المتغير، أنظر الكود التالي:
myNumber=l;
myVar = (myNumber++*10+1);
أي قيمة يأخذها المتغير myVar؟ فالمتغير myVar قيمته تساوي قيمة المتغير myNuber والتي تساوي واحد صحيح، وتم زيادتها بشكل متوالي باستخدام علامة الجمع، ثم ضربها في 10 ثم جمعها على واحد، فأي قيمة إذن تكون قيمة هذا المتغير؟ أي أن قيمة المتغير أصبحت، كما يلي:
myVar=1*10+1=11
فالعدد 11 هو القيمة الحالية للمتغير، ثم تبدأ هذه القيمة في التزايد بعد ذلك، أي أن قيمة الرقم تبدأ بالعدد 11، ثم تأخذ في التزايد بعد ذلك بمقدار 10، أي قيمة الرقم مضافًا عليها واحد مضروبة في 10، أما إذا كتبت الصيغة السابقة بالطريقة التالية بوضع علامة الجمع المزدوجة على يسار الرقم بدلًا من وضعها على يمين الرقم كما يلي، فإن الوضع يختلف.
myNumber=l;
;(1 ؛10* myVar=(++myNumber
في الكود السابق أي قيمة يأخذها التغير myVar، وقد قمنا بوضع علامة الجمع المزدوجة على يسار الرقم وليس على يمين الرقم كما في الحالة السابقة، في هذه الحالة تكون قيمة المتغير، كما يلي:
myVar = 2*10+1=21
والفارق هنا هو أن الرقم يتم زيادته أولًا بمقدار واحد، ثم بعد ذلك يتم ضربه في الرقم 10، ثم يجمع على الرقم 1 وتبدأ قيمة المتغير بالعدد 21، ثم تزيد بعد ذلك بمقدار 10 في كل مرة، وهي مقدار الزيادة في قيمة المتغير مضروبة في 10.