حلقههای for
و while
پس از کامپایل تفاوتی در زبان ماشین با هم نخواهند داشت. هر دو به پرشهای زبان ماشین تبدیل میشن. بنابراین استفاده از while
از نظر کارایی نباید تفاوتی با for
داشته باشه.
فرض کنیم از while
به صورت زیر استفاده میکنیم.
int i=0;
while(i<100)
{
...
i = f(i);
}
حالا سوال اینه که f(i)
بهتره چطوری پیاده بشه. دو حالت اصلی داریم.
الف) کدش مستقیماً در حلقه استفاده بشه یا تابع inline
تعریف بشه. که در این صورت اگه کد یکی دو خطه بهتره که در خود حلقه باشه و اگه بیشتره به صورت inline
تا خوانایی کد حفظ بشه.
ب) به صورت یک تابع معمولی که inline
نیست. در این صورت برای هر بار فراخوانی یک پرش و برگشت انجام میشه که از نظر کارایی بهصرفه نیست.
بنابراین بهتره از یکی از دو شکل حالت (الف) استفاده کنیم.
هیچ پژوهش انسانی نمیتواند ادعای علمی بودن داشته باشد، مگر اینکه از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)