조건문 등에서 하나의 return문만 사용하자

iy·2024년 1월 21일
0

저번 과제를 진행하다가 피드백 받은 내용을 기억하려고 정리해둔다.

public char calculateEssentialGrade(Integer essentialScore) {
        if (essentialScore >= 95 && essentialScore <= 100)
            return 'A';
        else if (essentialScore >= 90 && essentialScore <= 94)
            return 'B';
        else if (essentialScore >= 80 && essentialScore <= 89)
            return 'C';
        else if (essentialScore >= 70 && essentialScore <= 79)
            return 'D';
        else if (essentialScore >= 60 && essentialScore <= 69)
            return 'F';
        else
            return 'N';
    }

수강생 점수 관리 부분에서 점수를 입력하면 등급을 계산해주는 부분을 맡았고 메서드로 구현하였다.
처음 구현했을 땐 조건문으로 점수 별로 등급값이 return되도록 return문을 각 조건마다 작성해주었다.

하지만 이렇게 구현하면 경우에 따라 종료 지점이 달라지는데 지금은 명확한 값으로 오류가 없었지만 복잡한 조건을 갖는 조건문에선 종료 지점이 다를 때 경우가 겹치면 오류가 날 것이고 지점을 찾는데 까다로울 수 있다.

되도록 종료 지점이 통일되게 조건문에선 하나의 return문만 갖도록 하는 게 좋겠다.

public char calculateEssentialGrade(Integer essentialScore) {
        char grade = ' ';
        if (essentialScore >= 95 && essentialScore <= 100)
            grade = 'A';
        else if (essentialScore >= 90 && essentialScore <= 94)
            grade = 'B';
        else if (essentialScore >= 80 && essentialScore <= 89)
            grade = 'C';
        else if (essentialScore >= 70 && essentialScore <= 79)
            grade = 'D';
        else if (essentialScore >= 60 && essentialScore <= 69)
            grade = 'F';
        else
            grade = 'N';
        return grade;
    }

이렇게 경우에 따른 값을 변수에 저장해 return 시키는 방식으로 return문을 하나만 사용해 종료 지점을 동일하게 하였다.

0개의 댓글