강의

멘토링

로드맵

Inflearn brand logo image

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

이진호남선님의 프로필 이미지
이진호남선

작성한 질문수

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

문제와 풀이2

조건문 문제와풀이2 평점에 따른 영화추천 풀이 질문

작성

·

32

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
조건문 문제와풀이2 에서 평점에 따른 영화추천문제와 관련된질문입니다.

강의에서는 영한님께서 if문을 묶지 말라고하셨는데 아래 코드처럼 작성하면 안된다는 말인가요? 실행에는 문제가 없는거 같은데 영한님이 말씀하신 의도가 궁금합니다.

package cond.ex;

public class MovieRateEx_re {

    public static void main(String[] args) {

        double rating = 8.1;

        if (rating >= 9) {
            System.out.println("'어버웃타임'을 추천합니다");
        } else if (rating >= 8) {
            System.out.println("'어버웃타임'을 추천합니다");
            System.out.println("'토이스토리'을 추천합니다");
        } else if (rating >= 7) {
            System.out.println("'어버웃타임'을 추천합니다");
            System.out.println("'토이스토리'을 추천합니다");
            System.out.println("'고질라'을 추천합니다");
        }

    }
}

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 이진호남선님.

질문하신 사항은 “조건문 문제와 풀이2”에서의 평점에 따른 영화 추천 문제와 관련된 내용입니다. 코드가 실행되는 데는 문제가 없으나, 강의에서 김영한님은 특정 코드 스타일을 지양하기를 권장하신 것 같습니다.

Why Avoid Nested Conditions?

강의에서 언급된 ‘if 문을 묶지 말라’는 조언은 코드의 가독성과 유지보수성을 높이는 데 중요한 역할을 합니다. 코드가 작동하긴 하지만, 중복된 코드는 이해하기 어렵고, 나중에 수정이나 확장이 필요할 때 더 큰 문제가 될 수 있습니다. 중복을 제거하고 조건의 표현을 간결하게 하여 코드를 더 명확하게 만드는 것이 좋습니다.

예를 들어

  • 각 영화에 해당하는 if 조건이 반복되어 있습니다. 특정 조건에 따라 메시지를 출력하는 것이므로, 이 중복을 줄이는 것이 코드 품질을 향상시킬 수 있습니다.

  • 중복되는 코드를 줄이는 또 다른 방법은 배열이나 리스트를 사용하여 출력할 영화 목록을 저장한 후, 별도의 반복문을 사용해 이를 출력하는 방식입니다.

기존 질문과 답변 참고 링크

다음 링크들을 통해 다른 학습자의 질문과 답변을 참고해 보세요:

  1. 조건문 문제와 풀이2 첫 번째 문제 - 조건 검토 및 코드 최적화에 관한 토론입니다.
  2. 중복 if 문 - 중복 코드 제거에 대한 설명입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

이진호남선님의 프로필 이미지
이진호남선

작성한 질문수

질문하기