/
  • منطق حلقه FOR

  • ارسال پاسخ   امتیاز موضوع:
    • 1 رأی - میانگین امیتازات: 5
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی منطق حلقه FOR
    نویسنده پیام
    Y.P.Y آفلاین
    ناظم کل
    *******

    ارسال‌ها: 2,781
    تاریخ عضویت: ۱۳۸۷ دي ۲۸
    اعتبار: 103
    تشکرها : 2181
    ( 4856 تشکر در 2220 ارسال )
    ارسال: #1
    منطق حلقه FOR
    نظرتون راجب اینطور حلقه نویسی چیه؟
    کد PHP:
    for($i TOTAL_ONLINE_USERS$i != -1$i --)
    {
        echo 
    $i;
    }
    // شاید در این مورد $i != 0 هم می تونه باشه

    // یا این

    for($i 0$i TOTAL_ONLINE_USERS$i ++)
    {
        echo 
    $i;

    Angel

    ویرایش شد
    __________________________________________________________________________
    وبلاگ: Yousha.Blog.ir

    صدام: "اگر با ارتش شاه ایران طرف بودیم، یک ماهه جنگ را می بردیم"
    http://gulfnews.com/opinion/thinkers/ira...i-1.500997
    (آخرین ویرایش در این ارسال: ۱۳۹۵ فروردين ۷ ۰۶:۲۵ صبح، توسط Y.P.Y.)
    ۱۳۹۵ فروردين ۶ ۰۶:۵۰ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    undefined غایب
    احسان
    *******

    ارسال‌ها: 2,088
    تاریخ عضویت: ۱۳۸۸ مهر ۲۹
    اعتبار: 76
    تشکرها : 2005
    ( 2071 تشکر در 1219 ارسال )
    ارسال: #2
    RE: منطق حلقه FOR
    به چي گير داديا :دي
    از نظر طراحي الگوريم/ساختمان داده هر دو داراي پيچيدگي زماني n هستن
    از طرفي عملگر ها هم براي بررسي به عنوان يك واحد زماني در نظر گرفته ميشن
    پس نبايد تفاوتي بينشون باشه.

    اما نظر شخصيم
    ممكنه توي n هاي بزرگ زماني كه بنچمارك ميگيريم تقاوتي بينشون وجود داشته باشه كه مطمئن نيستم
    اما از اونجايي كه معتقدم وضوح كد رو نبايد فداي بهينه سازي كرد گزينه ي "يا اين" رو مناسب تر ميبينم.
    __________________________________________________________________________
    هر چیزی که در جستن آنی آنی...
    (آخرین ویرایش در این ارسال: ۱۳۹۵ فروردين ۶ ۰۲:۴۶ عصر، توسط undefined.)
    ۱۳۹۵ فروردين ۶ ۰۲:۴۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : Y.P.Y
    Y.P.Y آفلاین
    ناظم کل
    *******

    ارسال‌ها: 2,781
    تاریخ عضویت: ۱۳۸۷ دي ۲۸
    اعتبار: 103
    تشکرها : 2181
    ( 4856 تشکر در 2220 ارسال )
    ارسال: #3
    RE: منطق حلقه FOR
    همینجوری یهویی به ذهنم رسید Tongue

    بذار ببینم نظر بقیه چیه...
    __________________________________________________________________________
    وبلاگ: Yousha.Blog.ir

    صدام: "اگر با ارتش شاه ایران طرف بودیم، یک ماهه جنگ را می بردیم"
    http://gulfnews.com/opinion/thinkers/ira...i-1.500997
    ۱۳۹۵ فروردين ۶ ۰۳:۴۵ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : undefined
    sara147 آفلاین
    سـارا
    ***

    ارسال‌ها: 408
    تاریخ عضویت: ۱۳۹۲ شهريور ۶
    اعتبار: 21
    تشکرها : 233
    ( 332 تشکر در 210 ارسال )
    ارسال: #4
    RE: منطق حلقه FOR
    در مورد عملگری که در حلقه استفاده میشه، کوچکترمساوی در حلقه های زیادشونده / بزرگترمساوی در حلقه های کم شونده بهینه تر از بقیه عملگرهاست. چون بقیه عملگرها باعث میشن یک حلقه تکرار بیخود اجرا بشه.
    در مورد روند افزایشی یا کاهشی کدوم بهتره، اطلاعاتم کافی نیست.

    راستی تعداد تکرار حلقه
    کد PHP:
    for($i TOTAL_ONLINE_USERS$i != -1$i --) 
    یکی بیشتر از
    کد PHP:
    for($i 0$i TOTAL_ONLINE_USERS$i ++) 
    هست.
    __________________________________________________________________________
    به یـزدان که گر ما خرد داشتیم
    کجـا این سر انجـام بد داشتیم؟
    (آخرین ویرایش در این ارسال: ۱۳۹۵ فروردين ۶ ۰۸:۲۲ عصر، توسط sara147.)
    ۱۳۹۵ فروردين ۶ ۰۸:۱۶ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : undefined Y.P.Y
    mo_ali_2005 آفلاین
    عضو جدید
    **

    ارسال‌ها: 38
    تاریخ عضویت: ۱۳۹۳ مرداد ۱۵
    اعتبار: 2
    تشکرها : 3
    ( 19 تشکر در 14 ارسال )
    ارسال: #5
    RE: منطق حلقه FOR
    کدی که نوشتی از دو جهت قابل بررسی هست:
    اول performance: از این نظر نمی دونم تو php آیا بین حلقه افزایشی و کاهشی تفاوتی هست یا نه (توی بعضی زبان ها تفاوت وجود داره و حلقه کاهشی بهینه تر هست)
    دوم به لحاظ ساختار کد: از نظر ساختار کد دو تا کدی که نوشتین یکی نیست و دو تا تفاوت داره:
    تفاوت اول: حلقه اول یکی بیشتر میشمره مثلا اگر onlineusers=5 در نظر بگیریم اولی شش عدد چاپ می کنه (5 و 4 و 3 و 2 و 1 و 0) ولی حلقه دوم 5 تا چاپ می کنه (0 و 1 و 2 و 3 و 4)
    تفاوت دوم: وقتی نمی دونیم onlineuser چه عددی می تونه باشه کد اول ممکنه منجر به حلقه بی پایان بشه چون فقط یک عدد رو چک می کنه (فرض کنید onlineuser=-2 باشه)، ولی حلقه دوم هیچ وقت باعث حلقه بی پایان نمیشه چون یک بازه رو حذف می کنه
    SmileSmileSmileSmileSmileSmile
    (آخرین ویرایش در این ارسال: ۱۳۹۵ فروردين ۶ ۰۸:۵۹ عصر، توسط mo_ali_2005.)
    ۱۳۹۵ فروردين ۶ ۰۸:۵۷ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : undefined vejmad Y.P.Y ayoubsys
    Y.P.Y آفلاین
    ناظم کل
    *******

    ارسال‌ها: 2,781
    تاریخ عضویت: ۱۳۸۷ دي ۲۸
    اعتبار: 103
    تشکرها : 2181
    ( 4856 تشکر در 2220 ارسال )
    ارسال: #6
    RE: منطق حلقه FOR
    sara, @mo_ali_2005@
    نقل قول: حلقه اول یکی بیشتر میشمره مثلا اگر onlineusers=5 در نظر بگیریم اولی شش عدد چاپ می کنه (5 و 4 و 3 و 2 و 1 و 0) ولی حلقه دوم 5 تا چاپ می کنه (0 و 1 و 2 و 3 و 4)
    آره اون مهم نیست، شاید باید غلط املایی حسابش کنید. چون اصل منظورم ساختار کلیشون و پرفورمنسشون در شرایط یکسان هستش
    حالا فرض کنید i != 0


    دوم اینکه اون TOTAL_ONLINE_USERS از نامش معلومه: اول اینکه ثابته. دوم اینکه TOTAL هستش، و نه MAX (چیزی که بعضیا جابه جا می نویسن و برداشت می کنن)
    طبیعتاً MAX_ONLINE_PLAYERS میگه حداکثر ظرفیت بازیکنان سرور
    TOTAL_ONLINE_PLAYERS که میگه کل بازیکنان آنلاین کنونی/حاضر سرور

    پس اوج حلقه یک عدد ثابت و unsigned هستش.
    فرض کنید 10000000 هه
    __________________________________________________________________________
    وبلاگ: Yousha.Blog.ir

    صدام: "اگر با ارتش شاه ایران طرف بودیم، یک ماهه جنگ را می بردیم"
    http://gulfnews.com/opinion/thinkers/ira...i-1.500997
    (آخرین ویرایش در این ارسال: ۱۳۹۵ فروردين ۷ ۰۸:۰۷ صبح، توسط Y.P.Y.)
    ۱۳۹۵ فروردين ۷ ۰۶:۲۲ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : sara147 kasbookar
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS