• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

배열부분

21.09.15 11:37 작성 조회수 121

0

초반 배열부분 부터 이해가 안가는데 진도를 기냥 진행 해야하나요
이해될때까지 반복해서 봐야하나요 갑자기 for 문나오고 length 가 나오는데 length는 길이구하는거 아닌가요?
왜 더한 합이 되어서 60이 나오는지 모르겠습니다 알려주세요

답변 1

답변을 작성해보세요.

0

본수업은 기본적인 프로그래밍 기초가 조금되어 있으면 이해하는데는 큰 문제가 없습니다.
혹시 전혀 프로그래밍 기초가 없으실수있는데 질문자처럼 배열부분에서 어려움이 있을수 있습니다.
이해를 돕기위해서 설명을 다시 드리겠습니다. 동영상을 보시면 배열의 메모리 그림이 있습니다.

 int[] a=new int[3];
a[0]=10;
a[1]=20;
a[2]=30;
아래처럼 a[0] 기억공간에 10이 저장되고
아래처럼 a[1] 기억공간에 20이 저장되고
아래처럼 a[2] 기억공간에 30이 저장됩니다.

a--->a[0] :10
           a[1] :20
           a[2] :30

배열은 전체 길이를 구할수있는 length라는 속성을 사용할수 있습니다.
a.length라고하면 배열의 길이 즉 3을 구할 수있습니다.
배열에 저장된 데이터를 모두 더할려면 반복문( for)를 사용해볼수있는데 반복을 몇 번 할건지를
알기위해서 배열의 길이(a.length)를 구할수가 있습니다.

배열의 길이를 알면 아래처럼 반복문을 사용하여 배열데 저장된 모든 원소의 합을 구해볼수있습니다.
 int sum=0;
 for(int i=0;i<a.length;i++){
     sum+=a[i];
}
System.out.println(sum);  //60출력

위의 반복문을 실행하면  sum에 60(총합=a[0]+a[1]+a[2])이 저장됩니다.
반복문을 해석하면 a.length가 3이므로 i는 0, 1, 2 까지 변하게 됩니다.
그래서 반복문이 아래처럼 3번 실행이 됩니다.
i=0 일때는  sum+=a[0] <-10
i=1 일때는  sum+=a[1] <-20
i=2 일때는  sum+=a[2] <-30
그래서 sum이라는 변수에 10을 더하고, 20을 더하고, 30을 더해서 총 60이 저장이 된다고
이해하시면 됩니다.

프로그래밍의 기초인  반복문의 동작을 이해하시면 되구요, 배열의 모든 원소를 가장 쉽게 접근하는
방법이 반복문이기 때문에 배열에는 반드시 반복문이 따라오게 되어있습니다.
본수업은 메모리를 기반으로 프로그램이 어떻게 동작하는지 원리위주로 설명이 되어있기 때문에
자바기초와 병행해서 들으시면 더 효과적이 될수있을듯합니다.
일단 끝까지 정독하시면서 수업을 들어보시면 점점 이해력이 높아질것입니다.
설명을 한다고는 했지만 지면상 부족한 부분이 있으시면 다시 질문남겨주시기 바랍니다.

콩이님의 프로필

콩이

질문자

2021.09.25

감사합니다..엉엉 ㅜ