PDA

View Full Version : سوال: استفاده بیش از حد از تابع switch



iradata
دوشنبه 16 مرداد 1391, 01:20 صبح
سلام

می خواستم بدونم که اگه در برنامه بیش از حد از تابع switch استفاده بشه

مثلا :

یک switch وجود داشته باشد و پنجاه تا case و یک default

آیا با مشکل مواجه خواهیم شد ؟

با تشکر .

iradata
دوشنبه 16 مرداد 1391, 02:10 صبح
البته منظورم دقیفا از نظر سرعت هست !!!!

tdkhakpur
دوشنبه 16 مرداد 1391, 02:28 صبح
سلام

می خواستم بدونم که اگه در برنامه بیش از حد از تابع switch استفاده بشه

مثلا :

یک switch وجود داشته باشد و پنجاه تا case و یک default

آیا با مشکل مواجه خواهیم شد ؟

با تشکر .
مشکلی نداره اما در مورد سرعت به نطرم اگه کد اسمبلی اون استخراج بشه هر case یه دونه شرط به حساب میاد.

imanitc
دوشنبه 16 مرداد 1391, 09:13 صبح
به نظر من بهتر است از استفاده از 50 تا ifelse حداقل از نظر کد نويسي راحتتره :)

iradata
دوشنبه 16 مرداد 1391, 11:34 صبح
به نظر من بهتر است از استفاده از 50 تا ifelse حداقل از نظر کد نويسي راحتتره :)

درسته :لبخند:

ولی میخوام که بعدا مشکلی وجود نداشته باشه

ayub_coder
دوشنبه 16 مرداد 1391, 11:51 صبح
خیر مشکلی به وجود نخواهد آمد. یعنی در حدی نیست که بخوای روش تمرکز کنی. در ثانی وقتی از break درون switch استفاده میکنی وقتی به اولین مورد رسید دیگه بقیه چک نمیشن و ادامه کار انجام میشه.

desatir7316
دوشنبه 16 مرداد 1391, 13:56 عصر
مشکلی نداره اما در مورد سرعت به نطرم اگه کد اسمبلی اون استخراج بشه هر case یه دونه شرط به حساب میاد.
نه دوست عزیز اینجوری نیست، برو کد اسمبلیشو چک کن

switch بهتره، کلا وقتی تعداد مقایسه ها بالاست باید از روی switch کدتو ببری
می تونی توی نت سرچ کنی و کد اسمبلی شونو مقایه کنی تا بهتر متوجه بشی
اینم یه لینک که شاید به درد بخوره:http://stackoverflow.com/questions/4241768/switch-vs-if-statements

tdkhakpur
دوشنبه 16 مرداد 1391, 14:21 عصر
نه دوست عزیز اینجوری نیست، برو کد اسمبلیشو چک کن

switch بهتره، کلا وقتی تعداد مقایسه ها بالاست باید از روی switch کدتو ببری
می تونی توی نت سرچ کنی و کد اسمبلی شونو مقایه کنی تا بهتر متوجه بشی
اینم یه لینک که شاید به درد بخوره:http://stackoverflow.com/questions/4241768/switch-vs-if-statements
چه جوری نیست؟
مگه ما چی گفتیم؟!!!

AMIBCT
دوشنبه 16 مرداد 1391, 14:36 عصر
اگر مقایسه‌های شما ساده باشند یعنی طرفین مقایسه‌ی یک متغیر با یک مقدار باشد
50 تا شرط چیزی نیست که نگرانی در سرعت ایجاد کند

در این موارد نکته‌ی دیگری که باید به آن توجه کنید کد نویسی استاندارد و قابل توسعه است

بهتر است مقادیر را در یک آرایه ذخیره کنید و مقایسه را در یک حلقه انجام دهید
تا حجم کد کاهش یابد و خوانایی آن زیاد شود.

مثلا این طوری:


<?php
$test_array = array(
1 => 'hello',
2 => 'goodbye',
3 => 'hello again',
// ...
100 => 'default'
);

foreach( $test_array as $key => $val ) {

if( $test == $key ) {
echo $val;
break;
}

}
?>

desatir7316
دوشنبه 16 مرداد 1391, 16:50 عصر
چه جوری نیست؟
مگه ما چی گفتیم؟!!!
همون که برات نقل قولش کردم تو پست قبلی
"هر کیس یه دونه شرط به حساب میاد"

plague
دوشنبه 16 مرداد 1391, 16:59 عصر
همونطور که یکی از دوستان گفتن برای شرط های زیاد switch بهتر از if else عمل میکنه و سرعت بالاتری داره چون شرط ها زمان دسترسی یکسانی دارن و به عبارتی نمیاد یکی یکی همه رو چک کنه و اگه نبود بره بعدی

desatir7316
چهارشنبه 01 شهریور 1391, 15:24 عصر
جالبه، اینجا نوشته که esle if سریع تر عمل میکنه:http://www.designskew.com/blog/php-tricks-and-tips-beginners/
شماره 15
با توجه به چیزی که توی اسمبلی خوندیم من فکر می کردم توی همه زبان ها switch سریع تره !!!

عذر خواهی می کنم