Joseph Haugh
University of New Mexico
String monthToSeason(String m) {
if (m.equals("dec") || m.equals("jan") || m.equals("feb")) {
return "winter";
} else if (m.equals("mar") || m.equals("apr") || m.equals("may")) {
return "spring";
} else if (m.equals("jun") || m.equals("jul") || m.equals("aug")) {
return "summer";
} else {
return "fall";
}
}
String monthToSeason(String m) {
if (m.equals("dec") || m.equals("jan") || m.equals("feb")) {
return "winter";
} else if (m.equals("mar") || m.equals("apr") || m.equals("may")) {
return "spring";
} else if (m.equals("jun") || m.equals("jul") || m.equals("aug")) {
return "summer";
} else {
return "fall";
}
}
Switch expressions have the following syntax:
switch (<<switchTarget>>) {
case <<pattern>> -> <<result>>;
case <<pattern1>>, <<pattern2>>, ... -> <<result>>;
...
};Switch expressions have the following semantics:
Let’s try to rewrite our season function with switches
String monthToSeason(String m) {
if (m.equals("dec") || m.equals("jan") || m.equals("feb")) {
return "winter";
} else if (m.equals("mar") || m.equals("apr") || m.equals("may")) {
return "spring";
} else if (m.equals("jun") || m.equals("jul") || m.equals("aug")) {
return "summer";
} else {
return "fall";
}
}
String monthToSeason(String m) {
return switch (m) {
case "dec", "jan", "feb" -> "winter";
case "mar", "apr", "may" -> "spring";
case "jun", "jul", "aug" -> "summer";
default -> "fall";
};
}

String decipherStatusCode(int code) {
return switch (code) {
case 100 -> "continue";
case 200 -> "ok";
case 204 -> "no content";
case 301 -> "permanently moved";
case 400 -> "bad request";
case 401 -> "unauthorized";
case 404 -> "not found";
case 410 -> "gone";
case 502 -> "bad gateway";
};
}
String decipherStatusCode(int code) {
return switch (code) {
case 100 -> "continue";
case 200 -> "ok";
case 204 -> "no content";
case 301 -> "permanently moved";
case 400 -> "bad request";
case 401 -> "unauthorized";
case 404 -> "not found";
case 410 -> "gone";
case 502 -> "bad gateway";
default -> "unknown code: " + code;
}
}
Switch statements have the following syntax:
switch (<<switchTarget>>) {
case <<pattern>>:
<<bodyStatements>>;
case <<pattern>>:
<<bodyStatements>>;
...
}Switch statements have the following semantics:
:::
String monthToSeason(String m) {
return switch (m) {
case "dec", "jan", "feb" -> "winter";
case "mar", "apr", "may" -> "spring";
case "jun", "jul", "aug" -> "summer";
default -> "fall";
};
}
String monthToSeason(String m) {
String season;
switch (m) {
case "dec":
case "jan":
case "feb":
season = "winter";
break;
case "mar":
case "apr":
case "may":
season = "spring";
break;
// cont. next slide
case "jun":
case "jul":
case "aug":
season = "summer";
break;
default:
season = "fall";
break;
}
return season;
}