Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

أداء الحلقات التكرارية

جزء من قسم المنطق وتدفق التنفيذ في رحلة C# على Coddy. الدرس 13 من 66.

يمكن أن يؤدي تحسين أداء الحلقة إلى تحسين سرعة تطبيقك بشكل ملحوظ، وخاصةً مع مجموعات البيانات الكبيرة.

خزّن طول المجموعة في متغيّر قبل الحلقة:

int[] numbers = { 1, 2, 3, 4, 5 };
int length = numbers.Length; // خزّن الطول مرة واحدة

for (int i = 0; i < length; i++) // استخدم القيمة المخزنة
{
    Console.WriteLine(numbers[i]);
}

تجنّب استدعاءات method المتكررة في شروط الحلقة، على سبيل المثال:

for (int i = 0; i < GetCount(); i++)
{
    // جسم الحلقة
}

يتم called على الطريقة GetCount() في كل iteration من الحلقة. وهذا يعني أنه إذا تكررت الحلقة 1000 مرة، فسيتم تنفيذ GetCount() 1000 مرة أيضًا، لأن شرط الحلقة يُقيَّم قبل كل iteration.

إليك كيفية القيام بذلك بشكل صحيح:

int count = GetCount();
for (int i = 0; i < count; i++)
{
    // جسم الحلقة
}

يتم called على GetCount() مرة واحدة فقط قبل بدء الحلقة، وتُخزَّن قيمته في المتغير count. ثم تستخدم الحلقة هذه القيمة stored في جميع التكرارات، مما يلغي الحاجة إلى استدعاء method بشكل متكرر.

يمكن لهذا النهج أن يجعل شيفرتك تعمل بشكل أسرع من خلال تقليل العمليات الزائدة، خاصةً عندما ينفّذ الأسلوب الذي يتم استدعاؤه حسابات معقدة أو يصل إلى البيانات.

challenge icon

التحدي

سهل

أنشئ method called optimizedSum تقوم بما يلي:

  1. تأخذ مصفوفة من الأعداد الصحيحة كمعامل
  2. تحسب مجموع جميع العناصر
  3. تطبّق أسلوبين، optimized وUnoptimized:
    • Unoptimized: استدعِ array.Length في كل تكرار للحلقة
    • optimized: خزّن length مؤقتًا قبل الحلقة
  4. تُرجع result من الأسلوب optimized

جرّب بنفسك

public class OptimizedSum
{
    // قم بتنفيذ الدالة optimizedSum
    public static int optimizedSum(int[] numbers)
    {
        // اكتب الكود الخاص بك هنا
        
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم C# عبر الإنترنت