switch
مانند یک دستور if/else، یک دستور switch به شما امکان میدهد جریان اجرای برنامه را با اجرای شرطی کد تغییر دهید.
تفاوت این است که دستور switch فقط میتواند مقدار یک عبارت از نوع داده اولیه یا رشتهای را با مقادیر ثابت از پیش تعریفشده مقایسه کند.
برخی کلیدواژهها هنگام استفاده از دستور switch مفیدند.
switch: این کلیدواژه به شما امکان میدهد ساختار switch را تعریف کنید.
پس از آن، عبارت یا متغیری میآید که نتیجه را تغییر میدهد.case: از این کلیدواژه برای تعریف حالتهای مختلف ممکن برای نتیجه استفاده میکنید.break: کلیدواژهی break برای متوقف کردن اجرای switch در پایان جریان موردنظر بسیار مفید است.
اگر آن را فراموش کنید، برنامه ادامه مییابد و ممکن است به نتایج غیرمنتظرهای منجر شود.default: همانطور که از اسمش پیداست، از آن بهعنوان نتیجهی پیشفرض زمانی استفاده کنید که هیچ case دیگری با نتیجهی عبارت شما مطابقت ندارد.در سادهترین حالت، یک عبارت از نوع داده اولیه یا رشتهای را آزمایش میکند و بر اساس مقدار آن تصمیم میگیرد. برای مثال:
String direction = getDirection();
switch (direction) {
case "left":
goLeft();
break;
case "right":
goRight();
break;
default:
// otherwise
markTime();
break;
}
شما در حال توسعهی سیستمی هستید که به کارکنان وبسایت یک باشگاه فوتبال کمک میکند تا دربارهی مسابقهها گزارش تهیه کنند. دادهها از منابع گوناگون دریافت میشوند و پس از پاکسازی، به یک جریان واحد هدایت میشوند.
این تیم همیشه فقط با آرایش ۴-۳-۳ بازی میکند و هرگز با تغییر قوانین سال ۱۹۶۵ که تعویض را مجاز میکند موافق نبوده است، چه رسد به ترکیبهای بزرگتر.
توصیف بازیکنان به شرح زیر است:
1 -> "goalie"
2 -> "left back"
3 & 4 "center back"
5 -> "right back"
6, 7, & 8 -> "midfielder"
9 -> "left wing"
10 -> "striker"
11 -> "right wing"
متد استاتیک FootballMatchReports.onField() را پیادهسازی کنید تا توصیف بازیکن را بر اساس شمارهی پیراهنش خروجی بدهد.
FootballMatchReports.onField(10);
// => "striker"
متد FootballMatchReports.onField() را طوری تغییر دهید که وقتی شمارهی پیراهنی خارج از بازهی ۱ تا ۱۱ پردازش میشود، «invalid» برگرداند.
FootballMatchReports.onField(13);
// => "invalid"