[복습 - TDD] JavaScript 핵심 2 (흐름 제어) 제출#13
Open
1000hyehyang wants to merge 6 commits intogrepp-aibe:mainfrom
Open
[복습 - TDD] JavaScript 핵심 2 (흐름 제어) 제출#131000hyehyang wants to merge 6 commits intogrepp-aibe:mainfrom
1000hyehyang wants to merge 6 commits intogrepp-aibe:mainfrom
Conversation
문제점: Invalid 점수 처리: result = "C"; 부분에서 "Invalid"를 반환해야 하는데 잘못된 값을 반환하고 있습니다. 점수에 따른 등급 순서 오류: 점수가 높을수록 좋은 등급이어야 하는데, 조건이 반대로 처리되고 있습니다. 최후 조건 처리의 혼란: 조건 순서를 수정하면 가독성과 논리 흐름이 개선됩니다.
문제점: switch 조건 누락: switch 문에서 각 case에 break가 없어 모든 조건이 실행되며, 마지막 조건의 결과가 반환됩니다. 타입 확인 및 NaN 체크 문제: case typeof num !== "number" || isNaN(num):는 true일 경우 적절히 처리가 안 됩니다. default 처리 불필요: 모든 숫자와 타입 오류를 처리하고 있어 default는 필요 없습니다. 수정 사항: break 추가: 각 case에서 조건이 충족되면 다음 조건으로 넘어가지 않도록 break를 추가했습니다. 타입과 NaN 확인을 위한 case true 로직 유지: switch가 true를 기반으로 동작하게 설정하고 적절히 각 조건을 작성했습니다. default 제거: 조건이 명확하기 때문에 default는 필요하지 않으므로 삭제했습니다.
문제점: 초기 합계 값 설정 오류: sum = 1로 초기화되어 있어 계산이 잘못됩니다. 초기 값은 0이 되어야 합니다. 조건문 로직 문제: if (i % 3 !== 0 && i % 5 !== 0)의 조건이 3과 5의 배수를 제외해야 하는데 반대로 되어 있습니다. 현재 로직은 3과 5의 배수가 아닌 경우에 continue를 실행하므로, 원하는 동작을 수행하지 않습니다. 합계 계산 오류: sum -= i로 계산하고 있어 합계를 계산하는 목적에 어긋납니다. 올바른 로직은 sum += i입니다. 가독성 문제: continue의 역할을 명확히 하려면 조건을 반대로 설정하는 것이 더 직관적입니다. 주요 변경 사항: 초기화 값 수정: sum = 0으로 수정하여 올바른 합산이 가능하도록 변경했습니다. 조건문 수정: if (i % 3 === 0 || i % 5 === 0)로 수정하여 3과 5의 배수일 때 continue를 실행하도록 했습니다. 합산 로직 수정: sum += i로 합산하도록 변경하여 3과 5의 배수를 제외한 숫자만 더하도록 했습니다. 가독성 개선: continue 조건을 명확히 설정하여 코드의 의도를 더 쉽게 이해할 수 있도록 수정했습니다.
초기화 값 오류: sum = 1로 초기화되어 있어 올바른 합산 결과를 반환하지 않습니다. 수정: sum = 0으로 초기화하여 올바른 합산이 가능하도록 변경했습니다. 조건문 로직 문제: if (i > 10) break; 조건은 정확하지만, 요구사항은 "합이 10을 초과하면 중단"하는 것이므로 조건이 잘못되었습니다. 수정: if (sum + i > 10) break;로 수정하여 합계가 10을 초과할 때 루프를 중단하도록 변경했습니다. 합산 로직 오류: sum -= i로 인해 합산이 아닌 감소 연산이 이루어집니다. 수정: sum += i로 합산이 이루어지도록 수정했습니다. 가독성 문제: while 루프의 종료 조건과 break의 의도를 명확히 하기 위해 코드 구조를 약간 개선할 필요가 있습니다. 수정: 조건과 루프를 명확히 구분하여 가독성을 향상시켰습니다.
초기화 값 오류: sum = 1로 초기화되어 있어 결과가 잘못 계산됩니다. 수정: sum = 0으로 초기화하여 올바른 합산이 가능하도록 수정했습니다. 합산 로직 문제: sum -= i * j로 인해 곱한 값을 더하지 않고 빼고 있습니다. 수정: sum += i * j로 수정하여 올바르게 합산되도록 변경했습니다. 조건문 로직 문제: if (i * j > 10) continue; 조건은 적절하지만, 이후 코드에서 잘못된 로직(값을 빼는 연산)이 포함되어 의도가 불분명합니다. 수정: 조건을 유지하되, 값 합산 로직을 올바르게 설정했습니다.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.