강의로 돌아가기
-

2단계 질문드립니다.

    // array에는 정수가 들어있다고 가정하고 이 아래에서 sum에 array의 모든 값을 더하세요.

for (int i = 0; i < array.length; i++)
sum = sum + array[i];
// 아래는 결과 평가를 위한 코드입니다. 수정하지 마세요.
sum = sum + array[i]; 이 부분을 sum = 0 + array[i]; 로 넣었을때는 오답이 출력되는 이유가 궁금합니다. sum의 값이 처음에 0으로 잡혀있으니 괜찮은거 아닌가요?

작성중인 코드―ArrayExam.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class ArrayExam {
    public int sum(int[] param) {
        int[] array = param;
        int sum = 0;
        // array는 길이를 알 수 없는 int형 배열입니다.
        // array에는 정수가 들어있다고 가정하고 이 아래에서 sum에 array의 모든 값을 더하세요.
for (int i = 0; i < array.length; i++)
      sum = 0 + array[i];
        // 아래는 결과 평가를 위한 코드입니다. 수정하지 마세요.
        return sum;
    }

    //아래는 실행을 위한 코드입니다. 수정하지 마세요.
    public static void main(String[] args) {
        int[]TestCase = new int[4];
        String str = "";
        int rightResult = 0;
        for(int i=0; i<4; i++){
            TestCase[i] = (int)(Math.random()*100);
            rightResult += TestCase[i];
            str+=(TestCase[i]+",");
        }
        str=str.substring(0,str.length()-1);

        ArrayExam exam = new ArrayExam();
        int Answer = exam.sum(TestCase);

        if (Answer==rightResult) {
            System.out.println("정답입니다. [제출]을 누르세요.");
        }
        else{
            System.out.println( str+"를 더한 sum의 값이 틀립니다.");
        }
    }
}
1 개의 답변
직업을 바꿀까...

sum = sum + array[i]; 은 for문이 돌때마다 sum의 값이 바뀌기때문에 중첩으로 계산이 가능하나, 0을 정의하게되면 결국 for문의 마지막 값이 그냥 0과 계산이 되버리겠지요? 쉬운 방법으론 sum += array[i]; 으로 하시면 유용합니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.