그렇다면 계속 값을 더해줘야 하는 변수를 선언할 때는 이 변수를 어디에 선언해야 할지 잘 생각해보세요. for 블록 안에서 선언한 변수는 for 블록 안에서만 사용할 수 있습니다. 블록 안에 포함되지는 않지만, for 구문에 포함된 int i도 for 블록 안에서만 사용됩니다.
변수의 스코프는 그 변수가 선언된 블록이라고 생각하면 됩니다. 그러므로 값을 더한 결괏값을 저장할 변수를 for 블록 안에 선언하면 for 블록 바깥에서는 사용하지 못합니다. 또한, for 블록을 실행하고 다시 반복하는 시점에 변수를 매번 새롭게 선언하므로 값을 지속적으로 저장할 수가 없습니다. 따라서 for 블록 안에 값을 저장할 변수를 선언하면 안 됩니다. 값을 더할 변수 sum은 for 블록 밖에 선언하고, for 블록 안에서는 배열 안에 들어있는 값을 차례대로 꺼내 이 변수에 계속 더해줍니다. 출력은 for 문이 모두 끝나고 한 번만 합니다.
public class ArrayWithFor { public static void main(String[] args) { int[] iarray = new int[100]; for(int i = 0; i < iarray.length; i++) { iarray[i] = i + 1; } int sum = 0; for(int i = 0; i < iarray.length; i++) { sum = iarray[i]; } System.out.println(sum); } }
실행결과
100