작성
·
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;
이렇게 응용한 코드를 작성해보려고 했는데
해당코드가 리펙토링이 잘 된 코드인지 컨펌을 받고 싶습니다.
답변 1
2
안녕하세요. 옙버디님, 공식 서포터즈 OMG입니다.
배열의 데이터를 선언과 동시에 초기화하지 않고 첫번째 데이터(60)와 고정으로 증가하는 값(10)을 기반으로 리펙토링하려는 것 같습니다 😀
그러한 의도라면 올리신 코드처럼 작성하여도 무방하지만 리펙토링은 강의에서 영한님이 설명해주시지만 기존의 코드 기능은 유지
하면서 내부 구조를 개선
하여 가독성을 높여야 하지만
출력 시 배열의 시작 인덱스가 0이 아닌 1로 시작하는 점(=코드 기능은 유지
X)
인덱스의 범위가 배열의 길이로의 조건이 중복되는 점(=내부 구조를 개선
X)
Condition 'i < students.length' is always 'true' when reached
조건 'i < students.length'는 도달했을 때 항상 '참(true)'이다.
for문의 조건식 부분에 이미 인덱스는 배열의 길이보다 작을 때의 조건이 포함되어 있는데, if문에서 한번 더 동일한 조건을 추가하여 내부 구조를 개선했다고 보기는 힘들 것 같습니다
참고로 인텔리제이에서 코드라인에 노랗게 표기되는 것은 오류는 아니지만 코드를 인지하여 문제가 발생되는 것을 알려주거나, 코드의 개선이 필요한 내용을 알려주니 이 부분도 참고해주세요 ^^
설명드린 내용을 바탕으로 다시한번 고민하여 댓글 혹은 글을 새로 남겨주시면 같이 학습하시는 분들에게도 많은 도움이 될 것 같습니다 😃
감사합니다.