트랙
/
Java
Java
/
연습 문제
/
축구 경기 리포트
축구 경기 리포트

축구 경기 리포트

학습 연습 문제

소개

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. 등번호를 기준으로 선수 설명을 출력해요

이 팀은 항상 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"

2. 등번호가 공식 명단에 속하지 않으면 "invalid"를 출력해요

1-11 범위를 벗어난 등번호가 처리되면 'invalid'를 반환하도록 FootballMatchReports.onField() 메서드를 수정해요.

FootballMatchReports.onField(13);
// => "invalid"
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Java Exercism

축구 경기 리포트 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Java 트랙을 개념 26개연습 문제 158개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.