자바 도와주세요!

자바 도와주세요!

QA

자바 도와주세요!

답변 2

본문

var sum = 0;

fuction acc() {

var sum = 0;

for (i=0; i<10; i++)

sum += i;

}

acc();

document.write("합 = " + sum);

 

왜 합=0이 나오는건가요??

이 질문에 댓글 쓰기 :

답변 2

우선 해당 방법대로 선언하면 변수 밖에 sum이란 변수가 하나 선언되는것이고, acc라는 함수 안에 sum이란 변수가 하나 생성되는 형태입니다.

이름만 동일할뿐 해당 방법으로 선언하게 되면 컴퓨터내에선 동일한 변수가 아닙니다.
그리고 함수 밖에서 document.write로 sum을 출력하라고 했으니 함수 외부에 선언되어있는 sum 변수의 값을 출력하게 됩니다.
acc안에 있는 sum을 흔히 지역변수라고 하는데 해당 함수내에서, 또는 해당 블록내에서만 존재하는 변수를 이야기 합니다.
만약 sum의 계산값을 출력시키고 싶다면
함수내에서 var sum이 아닌 sum = 0으로 선언하거나 선언부분을 없애시거나
또는 함수에서 return sum을 마지막 줄에 추가하고
sum = acc();
이런식으로 결과값을 받으셔야 합니다.

 

javascript function 부분의 문자가 틀린 부분이 확인되며

 

sum이라는 전체 변수선언을 사용한다면 굳이 var sum을 안에서 안하셔도 되는 부분입니다.

 

<script>
var sum = 0;

function acc() {
  for (var i=0; i<10; i++){
       sum += i;
  }
}

acc();

document.write("합 = " + sum);
</script>

 

해당식으로 하셔야 정확한 반응을 합니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 946
© SIRSOFT
현재 페이지 제일 처음으로