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

밝은 늑대님의 프로필 이미지
밝은 늑대

작성한 질문수

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

문제와 풀이2

ArrayEx7 출력 파트의 변수

작성

·

155

0

배열 문제와풀이 2번 강의

12분 경에 있는 ex7 문제의 경우

 

total과 average를 지역변수 각각 하나를 이용해 풀었는데,

입력 for문과 출력 for문을 반복시에 total과 average값이 변화할텐데, Run 기능을 통해 결과를 확인 시에 total, average 값이 각각의 학생마다 제대로 나옵니다.

 

질문1: 출력 파트에서 sout " 1번학생의 총점: 100, 평균: 33.3" 을 실행해놓고, 다음 2~4번 학생의 total과 average값을 불러오는 것인가요? 코드를 잘못짜게 되면total과 average 값이 reset되어 모든 학생의 총점과 평균이 똑같이 나올 가능성도 있나요? 주의해야 할 점이 있으면 알려주세요.

 

질문2: total과 average를 배열 함수를 사용해서 문제를 풀이하였는데, 위의 경우처럼 지역변수로 해결할수 있으므로 이는 불필요한 메모리 낭비라고 생각하면 되나요? 배열함수를 사용 해야 할때도 있을까요?

답변 2

0

안녕하세요. 밝은 늑대님, 공식 서포터즈 OMG입니다.

질문1.

반복문 진입하자마자 total을 0으로 초기화 합니다. 이는 각 학생별 총점과 평균에 영향이 가지 않고 개별 학생의 평균과 합산을 위한 처리입니다. 따라서 질문에서 우려하는 문제가 발생하지 않습니다.

질문2.

배열함수가 무얼 나타내는걸까요? 배열변수를 얘기하시는 것이라면 강의 예시에서는

과목수:3, 학생 수:4 에 대한 배열의 크기를 지정하였으므로 메모리 낭비라고 보이는 부분은 없습니다.

 

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

밝은 늑대님의 질문에 대해 제가 찾은 정보는 다음과 같습니다.

  1. totalaverage 값이 학생마다 제대로 계산되는 이유: totalaverage 값을 관리하는 방법에 대한 의문이신 것 같습니다. 배열 문제와풀이 2 ArrayEx7 질문..에서 설명한 것처럼, 각 학생별로 total 값은 학생의 점수를 누적해서 계산하기 전에 0으로 초기화되어야 합니다. 이 초기화 작업 덕분에 각 학생별로 총점이 올바르게 계산됩니다. average는 이 총점값을 바탕으로 계산되므로, 각 학생별로 올바른 평균값이 나옵니다. 따라서, 학생별로 totalaverage 값을 올바르게 출력하기 위해서는 총점과 평균을 계산하기 전에 total0으로 초기화하는 것이 중요합니다. 이렇게 초기화하지 않을 경우, 이전 학생의 점수에 현재 학생의 점수가 누적되어 잘못된 결과를 얻게 될 것입니다.

  2. 지역변수와 배열 함수의 메모리 사용에 대하여: 지역변수만 사용해서 문제를 해결한 경우와 배열 함수를 사용한 경우의 메모리 사용에 대한 귀하의 궁금증은 초기화 선언 관련 질문과 관련이 있을 수 있습니다. 이 경우, 메모리 절약 보다는 코드의 명확성 및 유지보수의 편의성이 더 중요한 측면입니다. 배열을 사용하여 totalaverage를 계산하는 경우는 학생별, 과목별 같은 다양한 데이터를 관리해야 할 때 유용할 수 있습니다. 비록 변수 사용으로 인한 미미한 메모리의 낭비가 있을 수 있지만, 복잡한 데이터 구조를 다루는데 있어서 코드의 가독성과 유지보수성을 높일 수 있습니다. 따라서 상황에 따라 적절한 데이터 구조를 선택하는 것이 중요합니다.

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

밝은 늑대님의 프로필 이미지
밝은 늑대

작성한 질문수

질문하기