강의

멘토링

로드맵

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

깡인한님의 프로필 이미지
깡인한

작성한 질문수

코드 질문

해결된 질문

작성

·

96

1

 public void increment() {
   if (count >= max) {
       System.out.println("최대값을 초과할 수 없습니다.");
       return;
   }
   count++;
}

이 코드를

    public void increment(){
        if(max > count) count += 1;
        else System.out.println("최대값을 초과할 수 없습니다.");
    }

이렇게 작성해도 될까요?

두가지 방식에 차이가 있나요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 깡인한님, 문의하신 코드에 대한 답변 드리겠습니다.

기능적인 측면에서 보면, 작성하신 두 메소드 increment()는 동일한 기능을 수행합니다. count 변수의 값이 max 변수값보다 크거나 같을 때는 “최대값을 초과할 수 없습니다.” 라는 메세지를 출력하고, 그렇지 않을 때는 count 값을 1 증가시키는 로직입니다.

첫 번째 코드에서는 if 조건이 참일 때(즉, count >= max) 최대값 초과 메시지를 출력하고 메소드를 바로 종료하는 early return 방식을 사용했습니다. 두 번째 코드에서는 if 조건이 거짓일 때 메시지를 출력하며, 참일 때 count 값을 증가시키는 구조입니다. 두 번째 코드는 조건이 거짓일 때만 추가 동작을 실행하도록 작성되었으며, 첫 번째 코드와 달리 early return을 사용하지 않았습니다.

성능적인 차이는 거의 없으며, 어느 코드를 사용하실지는 주로 가독성이나 개인 코딩 스타일에 따라 결정하시면 됩니다. 즉, 두 코드는 동작에 있어서 차이가 없으므로 사용하고 싶은 방식대로 작성하시면 됩니다.

만약 코드의 실행 흐름을 좀 더 명확히 하고 싶으시다면 개인적으로는 early return을 사용하는 첫 번째 코드가 좀 더 가독성이 좋다고 생각됩니다. 동일한 맥락으로 조건 판단에 있어서 >= 대신 >를 사용하는 것은 코드를 이해하려 할 때 조금 더 직관적이지 않을 수 있으므로 상황에 맞게 선택하면 됩니다.

깡인한님의 프로필 이미지
깡인한
질문자

감사합니다

깡인한님의 프로필 이미지
깡인한

작성한 질문수

질문하기