Menu
Coddy logo textTech

ביצועי לולאות

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-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]);
}

הימנעו מקריאות חוזרות למתודות בתנאי לולאה, למשל:

for (int i = 0; i < GetCount(); i++)
{
    // Loop body
}

המתודה GetCount() נקראת בכל איטרציה של הלולאה. פירוש הדבר הוא שאם הלולאה רצה 1000 פעמים, גם GetCount() תבוצע 1000 פעמים, כי תנאי הלולאה נבדק לפני כל איטרציה.

כך עושים זאת נכון:

int count = GetCount();
for (int i = 0; i < count; i++)
{
    // גוף הלולאה
}

הפונקציה GetCount() נקראת פעם אחת בלבד לפני שהלולאה מתחילה, והערך שלה נשמר במשתנה count. לאחר מכן הלולאה משתמשת בערך השמור הזה בכל האיטרציות, וכך מתייתר הצורך לקרוא למתודה שוב ושוב.

הגישה הזאת יכולה לגרום לקוד שלך לרוץ מהר יותר על ידי צמצום פעולות מיותרות, במיוחד כשהשיטה שנקראת מבצעת חישובים מורכבים או ניגשת לנתונים.

challenge icon

אתגר

קל

צרו מתודה בשם optimizedSum ש:

  1. מקבלת מערך של מספרים שלמים כפרמטר
  2. מחשבת את סכום כל האיברים
  3. מממשת גישה לא מיטבית וגישה מיטבית:
    • לא מיטבית: קוראים ל־array.Length בכל איטרציה של הלולאה
    • מיטבית: שומרים את האורך במטמון לפני הלולאה
  4. מחזירה את התוצאה מהגישה המיטבית

נסו בעצמכם

public class OptimizedSum
{
    // ממשו את המתודה optimizedSum
    public static int optimizedSum(int[] numbers)
    {
        // כתבו כאן את הקוד שלכם
        
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר C# אונליין