Az if/else utasításhoz hasonlóan a switch utasítással is megváltoztathatod a program menetét, méghozzá úgy, hogy feltételesen hajtasz végre kódot.
A különbség az, hogy a switch utasítás csak egy primitív vagy string kifejezés értékét tudja összehasonlítani előre meghatározott konstans értékekkel.
Néhány kulcsszó hasznos, amikor switch utasítást használsz.
switch: ezzel a kulcsszóval deklarálod a switch szerkezetét.
Utána az a kifejezés vagy változó következik, amely megváltoztatja az eredményt.case: ezzel a kulcsszóval deklarálod az eredmény lehetséges változatait.break: a break kulcsszó nagyon hasznos ahhoz, hogy a switch végrehajtása a kívánt folyamat végén megálljon.
Ha elfelejted, a program folytatódik, és ez váratlan eredményekhez vezethet.default: ahogy a neve is sugallja, akkor használd, amikor egyetlen más eset sem illeszkedik a kifejezésed eredményére.A legegyszerűbb esetben egy primitív vagy string kifejezést vizsgálnak, és az értékük alapján döntenek. Például:
String direction = getDirection();
switch (direction) {
case "left":
goLeft();
break;
case "right":
goRight();
break;
default:
// otherwise
markTime();
break;
}
Egy olyan rendszert fejlesztesz, amely segít egy futballklub weboldalának munkatársainak beszámolni a mérkőzésekről. Az adatok különböző forrásokból érkeznek, és a megtisztításuk után egyetlen adatfolyamba kerülnek.
A csapat kizárólag 4-3-3-as felállásban játszik, és soha nem értett egyet az 1965-ös szabálymódosítással, amely engedélyezte a cseréket, a bővített keretekről nem is beszélve.
A játékosok leírásai a következők:
1 -> "goalie"
2 -> "left back"
3 & 4 "center back"
5 -> "right back"
6, 7, & 8 -> "midfielder"
9 -> "left wing"
10 -> "striker"
11 -> "right wing"
Implementáld a statikus FootballMatchReports.onField() metódust, amely a mezszám alapján visszaadja a játékos leírását.
FootballMatchReports.onField(10);
// => "striker"
Módosítsd a FootballMatchReports.onField() metódust úgy, hogy „invalid” értéket adjon vissza, ha a feldolgozott mezszám kívül esik az 1-11 tartományon.
FootballMatchReports.onField(13);
// => "invalid"
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Java nyelvet 26 fogalom158 feladat segítségével, valódi emberi mentorálással, mindez ingyen.