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;
}
축구 클럽 웹사이트의 직원들이 경기를 보도할 수 있도록 돕는 시스템을 개발하고 있어요. 데이터는 여러 출처에서 들어오고, 정리된 뒤 하나의 스트림으로 흘러 들어와요.
이 팀은 항상 4-3-3 포메이션으로만 경기하고, 교체를 허용한 1965년 규칙 변경에도 동의한 적이 없어요. 선수단을 늘리는 건 말할 것도 없고요.
선수 설명은 다음과 같아요.
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"
1-11 범위를 벗어난 등번호가 처리되면 'invalid'를 반환하도록 FootballMatchReports.onField() 메서드를 수정해요.
FootballMatchReports.onField(13);
// => "invalid"
Exercism에 가입하고 Java 트랙을 개념 26개연습 문제 158개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.