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

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

문제와 풀이2

배열 문제와풀이 2 ArrayEx7 질문..

24.02.11 01:12 작성

·

234

0


[질문 내용]
배열 문제와풀이 2 ArrayEx7문제인데요

총점구할 때 궁금해서 질문드립니다 ㅜㅜ ;

총점 int total = 0; 인데 왜 for i(행) 문에서 변수를 선언하는 건지 원리를 잘 모르겠습니당..

답변 2

1

David Ha님의 프로필 이미지

2024. 02. 11. 12:35

int total의 선언은 밖에 있어도 되지만,

문제의 답에서는 for i문 안에 total = 0으로 초기화가 반드시 되어야 합니다.

 

for i 행에 있어야 하는 이유는, total 값이 누적되기 때문입니다.

예를 들어 1번 학생의 총합이 270인 상태에서

for i 문에 total = 0이 없다면,

이후에 2번 학생의 성적이 더해지면,

2번 학생의 총합은 1번 학생의 총합 + 2번학생의 총합의 값이 나오기 때문입니다.

 

노베이스 비전공자 개린이님의 프로필 이미지

2024. 02. 11. 12:57

감사합니다!!..total이 누적되는 걸 생각을 못했어요!! 바쁘신 데 감사드립니다

0

OMG님의 프로필 이미지

2024. 02. 11. 10:47

안녕하세요. 노베이스 비전공자 개린이님, 공식 서포터즈 OMG입니다.

 

총점 int total = 0; 인데 왜 for i(행) 문에서 변수를 선언하는 건지 원리를 잘 모르겠습니당..

-

total 변수를 미리 바깥에서 선언하고(int total; 또는 int total = 0;) for문 i(행) 에서

total = 0;으로 초기화만 해도 무방합니다.

예시)

int total;
for (int i = 0; ..)
    total = 0;

 

-

강의에서와 같이 for문 i(행)에서 선언과 초기화를 동시에 한다면

변수의 사용범위가 for문 안으로만 제약이 생기고 변수의 사용 범위(scope)가 명확해진다는 장점이 있습니다.

-

감사합니다.