شرح معاملات الزيادة والنقصان (Increment & Decrement Operators) في Dart
🔹 ما هي معاملات الزيادة والنقصان؟
تُستخدم معاملات الزيادة (Increment ++
) والنقصان (Decrement --
) لتعديل قيمة المتغير بزيادة أو نقصان بمقدار 1.
🔹 أنواع معاملات الزيادة والنقصان في Dart
المعامل | النوع | الوصف |
---|---|---|
++var | زيادة قبلية (Prefix Increment) | يزيد المتغير أولًا ثم يُعيد القيمة الجديدة |
var++ | زيادة بعدية (Postfix Increment) | يُعيد القيمة الحالية للمتغير ثم يزيده بمقدار 1 |
--var | نقصان قبلي (Prefix Decrement) | ينقص المتغير أولًا ثم يُعيد القيمة الجديدة |
var-- | نقصان بعدي (Postfix Decrement) | يُعيد القيمة الحالية للمتغير ثم ينقصه بمقدار 1 |
🔹 الفرق بين الزيادة القبلية والبعدية (++var
و var++
)
✅ 1. الزيادة القبلية (++var
)
- تزيد قيمة المتغير أولًا، ثم تُستخدم القيمة الجديدة في التعبير.
- مثال:
dartCopyEditvoid main() {
int num = 5;
int result = ++num; // أولاً: تزيد num إلى 6، ثم تخزن القيمة في result
print("القيمة الجديدة: $num"); // 6
print("النتيجة: $result"); // 6
}
✅ 2. الزيادة البعدية (var++
)
- تُعيد القيمة الأصلية للمتغير أولًا، ثم تزيده بمقدار 1.
- مثال:
dartCopyEditvoid main() {
int num = 5;
int result = num++; // أولاً: تخزن القيمة الأصلية في result، ثم تزيد num إلى 6
print("القيمة الجديدة: $num"); // 6
print("النتيجة: $result"); // 5
}
📌 الفرق الأساسي:
++num
: يزيد القيمة قبل استخدامها.num++
: يستخدم القيمة قبل زيادتها.
🔹 الفرق بين النقصان القبلي والبعدي (--var
و var--
)
✅ 3. النقصان القبلي (--var
)
- ينقص قيمة المتغير أولًا، ثم يُعيد القيمة الجديدة.
- مثال:
dartCopyEditvoid main() {
int num = 8;
int result = --num; // ينقص num إلى 7 أولاً، ثم يخزنها في result
print("القيمة الجديدة: $num"); // 7
print("النتيجة: $result"); // 7
}
✅ 4. النقصان البعدي (var--
)
- تُعيد القيمة الأصلية للمتغير أولًا، ثم تنقصه بمقدار 1.
- مثال:
dartCopyEditvoid main() {
int num = 8;
int result = num--; // أولاً: تخزن القيمة الأصلية في result، ثم تنقص num إلى 7
print("القيمة الجديدة: $num"); // 7
print("النتيجة: $result"); // 8
}
📌 الفرق الأساسي:
--num
: ينقص القيمة قبل استخدامها.num--
: يستخدم القيمة قبل إنقاصها.
🔹 أمثلة شاملة
✅ 1. استخدام معاملات الزيادة والنقصان داخل العمليات الحسابية
dartCopyEditvoid main() {
int a = 5;
int b = 10;
int result = a++ + --b;
print("a: $a"); // 6 (لأن a++ يستخدم القيمة قبل الزيادة)
print("b: $b"); // 9 (لأن --b ينقصها أولًا)
print("النتيجة: $result"); // 5 + 9 = 14
}
✅ 2. استخدام معاملات الزيادة والنقصان مع الحلقات (for loop
)
dartCopyEditvoid main() {
for (int i = 0; i < 5; i++) {
print("القيمة الحالية لـ i: $i");
}
}
📌 التفسير:
- يبدأ
i
من0
، ثم يزيد بمقدار 1 في كل تكرار (i++
). - تنتهي الحلقة عندما يصل
i
إلى5
.
✍ المخرجات:
yamlCopyEditالقيمة الحالية لـ i: 0
القيمة الحالية لـ i: 1
القيمة الحالية لـ i: 2
القيمة الحالية لـ i: 3
القيمة الحالية لـ i: 4
✅ 3. استخدام معاملات النقصان مع الحلقات (while loop
)
dartCopyEditvoid main() {
int x = 5;
while (x > 0) {
print("القيمة الحالية لـ x: $x");
x--; // نقصان بعدي
}
}
✍ المخرجات:
yamlCopyEditالقيمة الحالية لـ x: 5
القيمة الحالية لـ x: 4
القيمة الحالية لـ x: 3
القيمة الحالية لـ x: 2
القيمة الحالية لـ x: 1
💡 الخلاصة
المعامل | الوصف | مثال |
---|---|---|
++var | زيادة قبلية | int x = 5; int y = ++x; → x = 6, y = 6 |
var++ | زيادة بعدية | int x = 5; int y = x++; → x = 6, y = 5 |
--var | نقصان قبلي | int x = 5; int y = --x; → x = 4, y = 4 |
var-- | نقصان بعدي | int x = 5; int y = x--; → x = 4, y = 5 |