نمایش نتایج 1 تا 5 از 5

نام تاپیک: switch يا else-if

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    شیراز
    پست
    330

    switch يا else-if

    سلام خدمت همه اساتيد
    كسي اطلاع داره سرعت ساختار switch بيشتره با else-if يا اينكه تفاوتي ندارن؟

  2. #2
    کاربر دائمی آواتار amirh_karimifar
    تاریخ عضویت
    تیر 1388
    محل زندگی
    تهران
    پست
    156

    نقل قول: switch يا else-if

    مسلما سرعت switch case بیشتره . مخصوصا زمانی که case ها زیاد باشن . چون که با if else شما برنامه تمام شرط ها رو چک میکنه . ولی با switch case کامپایلر با جستجو بین case ها case مورد نظر رو پیدا میکنه و در صورتی که پیدا کنه بقیه ی case ها رو دیگه چک نمی کنه .

  3. #3
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: switch يا else-if

    ولی با switch case کامپایلر با جستجو بین case ها case مورد نظر رو پیدا میکنه و در صورتی که پیدا کنه بقیه ی case ها رو دیگه چک نمی کنه .
    خیر.
    در switch case کامپایلر در برنامه شما یک static lookup table ایجاد میکنه.که هر item اون به یک نقطه توی کد اشاره میکنه.
    مثلا
    0x0000001A
    0x00000024
    0x0000003F
    0x00000052
    0x0000009A
    0x0000006B
    0x0000009A
    0x0000009A
    0x0000009A
    0x0000007C
    وقتی برنامه به switch case میرسه, تست میکنه که از range خارج نباشه.اگر باشه به default میره در غیر این صورت به اون جایی که توی static array بهش اشاره شده میره.

    در ضمن من نفهمیدم کامپایلر روی سیستم کاربر دنبال چی میگرده, اگر ممکنه یه مقدار بیشتر توضیح بدید.
    آخرین ویرایش به وسیله vcldeveloper : یک شنبه 31 مرداد 1389 در 18:35 عصر دلیل: لحن نامناسب

  4. #4
    کاربر دائمی آواتار amirh_karimifar
    تاریخ عضویت
    تیر 1388
    محل زندگی
    تهران
    پست
    156

    نقل قول: switch يا else-if

    دوست عزیز . ایشون یک سوال پرسیده بودن . منم به اندازه ی سوادم کمکشون کردم .
    چه خوب بود که شمام همین کارو می کردین . در ضمن اینجا froum هست . ممکنه بعدا کسی دیگه این مطلب رو بخونه . چه خوب بود که همین جا همه رو از علمتون مستفیض می کردید .

  5. #5
    کاربر دائمی آواتار cardano7
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    کارتون خواب
    پست
    473

    نقل قول: switch يا else-if

    معمولا این قدر عوامل مختلف سرعت رو پایین میارند که اختلاف سرعت if-else و switch توش گمه. علت استفاده از اونا بیشتر خوانایی برنامه هست و نه سرعت.
    توصیه میکنم که همیشه از switch استفاده کنید مگر در سه حالت که این کار عملی نیست:

    1- تعداد شرط ها کم باشه. مثلا برای 3 شرط به صرفه نیست که switch به کار بره.

    2- موضوع شرط متفاوت باشه. طوری که نشه switch به کار برد. مثلا:

    if(Today==Chrismass)
    do something;
    else if(lunch==spagetti
    do something else;
    3- در صورتی که موضوع شرط یکی هست اما موارد مقایسه مقادیر ثابت نیستند. چون داخل case نمی تونیم یک عبارت متغیر بنویسیم. یعنی مثال زیر عملی نیست:

    switch(Animal.Name.ToLower())
    {
    case "Fish".ToLower():
    something...;
    break;
    case "Cat".ToLower():
    something...;
    break;
    case "Dog".ToLower():
    something...;
    break;
    }

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •