PDA

View Full Version : مبتدی: دستور switch



hesabres
جمعه 21 مرداد 1390, 13:55 عصر
ضمن عرض سلام

حقیقت امر اینکه بنده مدت کمیست که کار با این زبان برنامه نویسی را شروع کردم ، در مرجعی که بنده باهاش پیش میرم در مورد دستور switch بسیار کلی گفته من یاد گرفتم ولی نفهمیدم ! میخوام ییکی از اساتید ساختار این دوستور رو توضیح بدهند

با احترام

morteza271
جمعه 21 مرداد 1390, 14:03 عصر
int sum = 2;
switch (sum)
{
case 0:
sum = 0;
break;
case 1:
sum = sum * 2;
break;
case 2:
sum = sum * 3;
break;
default:
sum = sum * 4;
break;
}
چک کردن از ابتدا شروع میشه و هر کدام از caseها که مطابقت داشت اجرا می شود.
default هم در صورتی اجرا می شود که با هیچکدام از case ها برابر نشود.

hesabres
جمعه 21 مرداد 1390, 15:34 عصر
ضمن عرض سلام و ادب خدمت شما


دستتون درد نکنه ، ببینید من بیشتر مد نظرم اینطوری هست که :



switch(ساختار این قسمت )
case ( ساختار این قسمت )


در واقع من این دستور رو درک کردم که به چه درد میخوره ولی نحوه نوشتنشو بلد نیستم مثلا از کدی که حضرتعالی نوشتید بنده این رو متوجه شدم که متغیر sum تعریف شده و عدد 2 هم به اون نسبت داده شد ولی مثلا در قسمت case نفهمیدم چطور شد شفاف تر بگم میخوام این قسمت 0:sum = 0 رو برام به فارسی توضیح دهید

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

morteza271
جمعه 21 مرداد 1390, 15:49 عصر
متغیری که در داخل switch() هست متغیری هست که میخواین بر اساس اون شرط ها رو چک کنید.

و مثلا case 0: یعنی اگر متغیر بالا (در مثال من sum) برابر 0 بود دستورات زیرش رو اجرا میکنه و از switch خارج میشه.

hesabres
جمعه 21 مرداد 1390, 16:13 عصر
من این کد رو به شکل زیر در اوردم ولی ظاهرا یه جائیش اشتباه میکنم چون اجرا نمیشه لطفا یه بررسی بکنید



int sum = 2;
switch (sum)
{
case 0: sum = 0;
break;
case 1: sum = 1;
break;
case 2: sum = 2;
break;
default: sum = 20;
break;
}
MessageBox.Show(sum);

hesabres
جمعه 21 مرداد 1390, 16:22 عصر
البته الان با تغییراتی که دادم درست شد من کد رو به شکل زیر اصلاح کردم ولی کماکان نمیدونم اشتباهم تو چی بود ! تو قسمت messagebox اشتباه دارم فکر کنم چرا ؟ :متفکر:



int sum;
sum = 2;
switch (sum)
{
case 0: sum = sum + 1; break;
case 1: sum = sum + 2; break;
case 2: sum = sum * sum; break;
default: sum = sum -1; break;
}
MessageBox.Show("====="+sum);

morteza271
جمعه 21 مرداد 1390, 16:38 عصر
در کد اولی که قرار دادین مشکل از این بود که MessageBox به عنوان ورودی یک رشته میگیره ولی شما یک int بهش پاس دادین!
باید اینطوری می نوشتین :
MessageBox.Show(sum.ToString());
در کد دوم مشکلتون حل شد یعنی خطا نمیده چون وقتی بنویسین "====="+sum تابع جمع دو رشته sum رو به string تبدیل میکنه و خطایی نمیگیره!
موفق باشید.

hesabres
جمعه 21 مرداد 1390, 16:41 عصر
در کد اولی که قرار دادین مشکل از این بود که MessageBox به عنوان ورودی یک رشته میگیره ولی شما یک int بهش پاس دادین!
باید اینطوری می نوشتین :
MessageBox.Show(sum.ToString());
در کد دوم مشکلتون حل شد یعنی خطا نمیده چون وقتی بنویسین "====="+sum تابع جمع دو رشته sum رو به string تبدیل میکنه و خطایی نمیگیره!
موفق باشید.

از لطف شما و وقتی که گذاشتید متشکرم .