شرح معاملات الزيادة والنقصان (Increment & Decrement Operators) في Dart

شرح معاملات الزيادة والنقصان (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

🚀 الآن لديك فهم شامل لكيفية استخدام معاملات الزيادة والنقصان في Dart! 🎯