در این مقاله، به آموزش استفاده از دستور switch در جاوا می پردازیم ودر قالب یک مثال، این ساختار را توضیح داد و از آن استفاده می کنیم.
در ادامه، می خواهیم برنامه ی CreateEventObject را اصلاح کنیم تا به جای استفاده از دستورات if تودرتو، از یک دستور switch استفاده کنیم. برای استفاده از یک دستور switch در فرآیند تصمیم گیری برنامه ی CreateEventObject گام های زیر را دنبال کنید:
1. در صورت لزوم، فایل CreateEventObject.java را باز کنید و نام کلاس را به CreateEventObjectSwitch تغییر دهید. بلافاصله، این فایل را به صورت CreateEventObjectSwitch.java ذخیره کنید.
2. دستورات if...else که در حال حاضر مشخص می کنند که کاربر چه عددی را وارد کرده است، حذف کنید و آنگاه به جای آنها، دستورات زیر را جایگزین کنید:
switch(eventType)
{
case PRIVATE_CODE:
chosenManager = PRIVATE_MANAGER;
chosenRate = PRIVATE_RATE;
break;
case CORPORATE_CODE:
chosenManager = CORP_MANAGER;
chosenRate = CORP_RATE;
break;
case NONPROFIT_CODE:
chosenManager = NONPROFIT_MANAGER;
chosenRate = NONPROFIT_RATE;
break;
default:
choiceIsGood = false;
}
3. فایل را ذخیره و کامپایل کنید و این اپلیکیشن را تست کنید. اطمینان حاصل کنید که، وقتی که اعداد 1 و 2 و 3 یا هر عدد نامعتبری را بعنوان ورودی کیبورد وارد می کنید، خروجی صحیحی را دریافت کنید.
کارهایی که نباید انجام دهید!
1. ظرافت های به کار رفته در تصمیم گیری را نادیده نگیرید. بعنوان مثال، انتخاب کارمندانی که کمتر از 20 دلار در هر ساعت درآمد دارند، با انتخاب کارمندانی که ساعتی 20 دلار یا کمتر، در هر ساعت درآمد دارند متفاوت است.
2. وقتی که می خواهید برابری چیزها را تست کنید، به جای استفاده از عملگر مقایسه،از عملگر انتساب(assignment) استفاده نکنید.
3. در یک دستور if، پس از عبارت بولین، یک سمی کالن قرار ندهید. بلکه سمی کالن را پس از اینکه کل دستور تکمیل شد، قرار دهید.
4. فراموش نکنید که وقتی چندین دستور برای if یا else داریم، باید آنها را در داخل آکولادها(بلوک) قرار دهیم.
5. فراموش نکنید که در هر سمت از یک عملگر && یا || یک عبارت بولین کامل قرار دهید.
6. سعی نکنید از یک دستور switch برای تست کردن چیز دیگری به جز یک عدد صحیح(integer)، کاراکتر(character) یا یک مقدار رشته ای(string) استفاده کنید.
7. اگر استفاده از یک دستور break برای منطق دستور switch شما لازم است، آن را فراموش نکنید.
8. از عملگرهای رابطه ایِ(relational operators) استاندارد، برای مقایسه ی آبجکت ها استفاده نکنید. بلکه از آنها تنها در نوع های داخی زبان برنامه نویسی جاوا(built-in Java types) استفاده کنید. در فصل کارکاترها، رشته ها و StringBuilder، یاد خواهید گرفت که چگونه رشته ها را به درستی مقایسه کنید و در فصل مفاهیم ارث بری پیشرفته، یاد خواهید گرفت که دیگر آبجکت ها را (با یکدیگر) مقایسه کنید.