제로의영역

10.1 All for one, one for all (배열) 본문

C#

10.1 All for one, one for all (배열)

아이큐제로 2019. 7. 31. 17:40

* 본 블로그 글은 머리가 아~~~주 나쁜 왕X100초보가 프로그래밍을 공부하면서 정리를 위해 작성하는 글입니다. 잘못 정리되거나 제가 잘못 이해한 글은 이해 및 조언 부탁드립니다.

* 공부는 '이것이 C#이다' 책을 보고 하고 있습니다. 참고로 저같은 왕초보가 보기 어렵게 써져 있어서 별도의 정리 문서를 만들게 되었습니다.

 

1. 배열의 정의: 번호(인덱스)와 번호에 대응하는 데이터들로 이루어진 자료구조

 

2. 용도: 다수의  데이터를 간결한 코드로 사용하고 싶을 때 사용.

 

3. 사용법

 (1) 입력 하기: 인덱스(번호)는 0부터 시작한다는 점에 주의

   표시 방법 >> 데이터 형식[ ] 배열이름 = new 데이터형식[ 용량 ];

     예) 용량이 5개인 int 형식의 배열 선언 >> int[ ] array=new int [5];

   

 5명의 성적을 변수에 담기

변수  배열

int score1=80;

int score2=74;

int score3=81;

int score4=90;

int score5=34

int[] scores=new int[5];

scores[0]=80;

scores[1]=74;

scores[2]=81;

scores[3]=90;

scores[4]=34;

 (2) 출력 하기: 입력된 데이터를 활용하여 보다 간결하게 만들 수 있음.

  1) 5명의 성적 출력하기

변수 배열

Console.WriteLine(score1);

Console.WriteLine(score2);

Console.WriteLine(score3);

Console.WriteLine(score4);

Console.WriteLine(score5);

foreach(int score in scores)

    Console.WriteLine(score);

 

*foreach: 배열을 순회하며 각 데이터 요소에 차례대로 접근하도록 해주는 명령어

 foreach 형식: foreach( 데이터형식 변수명 in 배열_또는_컬렉션)

                       코드_또는 코드블록

 

 2) 50명의 평균 성적 출력하기

변수 배열
int average=(score1+score2+score3+....+score50)/50;

int sum=0;

foreach(int score in scores)

sum +=score;

 

int average=sum/scores.Length;

변수로 작성할 경우 합을 구하는 부분에 50명의 데이터를 넣어줘야 하지만 배열을 이용한 코드는 바꿔줄 것이 없습니다. 

 

예제)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _10._1
{
    class MainProgram
    {
        static void Main(string[] args)
        {
            int[] scores = new int[5];  //배열선언
            scores[0] = 80; //변수 선언
            scores[1] = 74;
            scores[2] = 81;
            scores[3] = 90;
            scores[4] = 34;

            foreach (int score in scores)   //foreach문: scores배열의 변수에 차례대로 접근
                Console.WriteLine(score);   //변수 출력

            int sum = 0;    //sum 초기화
            foreach (int score in scores)   //foreach문
                sum += score;   //sum에 score변수들을 더해줌

            int average = sum / scores.Length;  //배열 객체의 Length프로퍼티는 배열의 용량(길이 또는 개수)을 나타냄.

            Console.WriteLine("Average Score:{0}", average);    // 평균값 출력
        }
    }
}

실행 결과

80
74
81
90
34
Average Score:71