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

옙버디님의 프로필 이미지
옙버디

작성한 질문수

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

배열 리펙토링

배열에 대한 질문

작성

·

368

0

안녕하세요 강사님 배열에 대해서 정말 이해하기 쉽게 알려주셔서 정말 감사드립니다!

students[0] = 90;

students[1] = 80;

students[2] = 70;

students[3] = 60;

students[4] = 50;

이 선언문을 for문을 활용해서

students[i]가 이전의 값을 계속 참조해서 10씩 증가

즉,

students[0] = 60;

students[1] = 70;

students[2] = 80;

students[3] = 90;

students[4] = 100;

이렇게 응용한 코드를 작성해보려고 했는데

해당코드가 리펙토링이 잘 된 코드인지 컨펌을 받고 싶습니다.스크린샷 2023-12-05 오후 10.51.25.png

답변 1

2

안녕하세요. 옙버디님, 공식 서포터즈 OMG입니다.

배열의 데이터를 선언과 동시에 초기화하지 않고 첫번째 데이터(60)와 고정으로 증가하는 값(10)을 기반으로 리펙토링하려는 것 같습니다 😀

 

그러한 의도라면 올리신 코드처럼 작성하여도 무방하지만 리펙토링은 강의에서 영한님이 설명해주시지만 기존의 코드 기능은 유지하면서 내부 구조를 개선하여 가독성을 높여야 하지만

 

출력 시 배열의 시작 인덱스가 0이 아닌 1로 시작하는 점(=코드 기능은 유지X)

image

인덱스의 범위가 배열의 길이로의 조건이 중복되는 점(=내부 구조를 개선 X)

image

Condition 'i < students.length' is always 'true' when reached

조건 'i < students.length'는 도달했을 때 항상 '참(true)'이다.

for문의 조건식 부분에 이미 인덱스는 배열의 길이보다 작을 때의 조건이 포함되어 있는데, if문에서 한번 더 동일한 조건을 추가하여 내부 구조를 개선했다고 보기는 힘들 것 같습니다

 

참고로 인텔리제이에서 코드라인에 노랗게 표기되는 것은 오류는 아니지만 코드를 인지하여 문제가 발생되는 것을 알려주거나, 코드의 개선이 필요한 내용을 알려주니 이 부분도 참고해주세요 ^^

 

설명드린 내용을 바탕으로 다시한번 고민하여 댓글 혹은 글을 새로 남겨주시면 같이 학습하시는 분들에게도 많은 도움이 될 것 같습니다 😃

감사합니다.

옙버디님의 프로필 이미지
옙버디

작성한 질문수

질문하기