if문이 너무 많은데 이걸 줄일 수 있을까요?

조회수 3146회

발생하는 문제 및 실행환경

밑에 코드가 제가 원하는대로 되는데요. 코드가 너무 더러워요. 제가 줄이려고 몇번 다르게 코드를 짜봤는데 별로 큰 차이는 없어요. 코드를 줄이는데 도움이 될만한 수학적인 공식이 있을까요? 아니면 if문 16개가 충분히 나올만한 건가요?

코드를 설명하자면, 턴 방식의 게임인데요. 두명의 플레이어가 각각 4개의 액션 버튼을 가졌는데 그 값은 0~3이에요. result의 값이 0이면 아무도 못이긴거고 1이면 1P가 이긴거고 2면 2P가 이긴거 3이면 둘다 이긴거에요.

에러메시지(있는 경우)

소스코드

public int fightMath(int one, int two) {

    if(one == 0 && two == 0) { result = 0; }
    else if(one == 0 && two == 1) { result = 0; }
    else if(one == 0 && two == 2) { result = 1; }
    else if(one == 0 && two == 3) { result = 2; }
    else if(one == 1 && two == 0) { result = 0; }
    else if(one == 1 && two == 1) { result = 0; }
    else if(one == 1 && two == 2) { result = 2; }
    else if(one == 1 && two == 3) { result = 1; }
    else if(one == 2 && two == 0) { result = 2; }
    else if(one == 2 && two == 1) { result = 1; }
    else if(one == 2 && two == 2) { result = 3; }
    else if(one == 2 && two == 3) { result = 3; }
    else if(one == 3 && two == 0) { result = 1; }
    else if(one == 3 && two == 1) { result = 2; }
    else if(one == 3 && two == 2) { result = 3; }
    else if(one == 3 && two == 3) { result = 3; }

    return result;
}

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)