인프런 커뮤니티 질문&답변

빙봉빙봉님의 프로필 이미지
빙봉빙봉

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

▶ 조건문

JSEXP 문의드립니다.

해결된 질문

작성

·

260

0

function ratingDetail(num) {

// 여기에 코드를 작성하세요.

let result;

if (num >=90 && num <=100 ) {

result = "A";

if (num >= 96) {

result += "+";

} else if (num <= 93) {

result += "-";

} else {

}

} else if (num >= 80 && num < 90) {

result = "B";

if (num >= 86) {

result += "+";

} else if (num <= 83) {

result += "-";

} else {

}

} else if (num >= 70 && num < 80) {

result = "C";

if (num >= 76) {

result += "+";

} else if (num < 73) {

result += "-";

} else {

}

} else if (num >= 60 && num < 70) {

result = "D";

if (num >= 66) {

result += "+";

} else if (num < 63) {

result += "-";

} else {

}

} else if (num > 0 && num < 60) {

result = "등급미달";

} else {

result = "잘못된 값입니다";

}

return result;

}

ratingDetail(60);

 

output에 맞추다 보니 이렇게 코드가 길고
가독성이 떨어지게 되었습니다.

if문을 중첩으로 사용하는 것 외의

다른 방법으로 코드를 최적화할 수 있는 방법이 궁금합니다. 커리큘럼 중 어느 부분을 찾아서 공부하고 응용하면 될까요?

답변 1

0

노원두님의 프로필 이미지
노원두
지식공유자

안녕하세요! 왜그럴까님!
일반적으로 이미 만든 코드를 다시 새롭게 뜯어 고치면서 실력이 가장 많이 상승하는 것 같아요!
이러한 자세를 가지고 계신 왜그럴까님은 금방 실력이 오를 것 같네요! ㅎㅎ

유지보수하기 쉬운 코드로 변경하는 작업을 리팩토링 이라고 합니다!
수업 중간중간에 여러 다양한 리팩토링 스킬들을 배우실 수 있지만, 현재 위 코드를 리팩토링 하는데에 있어서는 단순한 스킬보다는 알고리즘적인 사고력이 필요할 것 같아요!

따라서, 틈틈히 알고리즘을 추가로 공부해 주시면 좋을 것 같습니다!^^

위 코드를 간단히 만들기 위해 여러가지 방법이 있겠지만,
한 가지 팁을 드리자면 아래와 같은 고민을 한 번 해보시기 바랍니다!

const 점수표 = {
  10: "A",
  9: "A",
  8: "B",
  7: "C",
  6: "D",
};

console.log(점수표[9]) // A
console.log(점수표[7]) // C

위 힌트를 사용하시면 더욱 간단히 코드를 만드실 수 있을거예요!

 

빙봉빙봉님의 프로필 이미지
빙봉빙봉
질문자

선생님~ 감사합니다!! 알려주신 팁으로 다시 고민해 볼게요~

빙봉빙봉님의 프로필 이미지
빙봉빙봉

작성한 질문수

질문하기