본문 바로가기
Java

7강 배열

by 보라코끼리 2021. 7. 31.
728x90
  • [인프런]자바 프로그래밍 입문강좌 7강 배열 정리입니다.
  • 다수의 데이터를 인덱스를 이용해서 관리하는 방법을 학습합니다.

7.1 배열이란?

  • 인덱스를 이용해서 자료형이 같은 데이터를 관리하는 것이다.

  • int a = 10; int b = 20; => 데이터 한개만 관리
  • 배열 => 여러개의 데이터를 한번에 관리하기 위한 것
  • 인덱스 = 꼬리표로 생각. 0번부터 시작한다.
  • 배열의 길이 = 배열의 크기
    • 데이터가 10개가 관리되고있다
      • 배열의 길이(크기) : 10
      • 인덱스 : 0 ~ 9

 

7.2 배열 선언 및 초기화

  • 배열도 변수와 마찬가지로 선언과 초기화 과정을 거쳐 사용한다.
    // 배열 선언 후 초기화
    int[] arr1 = new int[5]; // 배열 선언 단계
    arr1[0] = 100;
    arr1[1] = 200;
    arr1[2] = 300;
    arr1[3] = 400;
    arr1[4] = 500;

    System.out.println("arr1[0] : " + arr1[0]);
    System.out.println("arr1[1] : " + arr1[1]);
    System.out.println("arr1[2] : " + arr1[2]);
    System.out.println("arr1[3] : " + arr1[3]);
    System.out.println("arr1[4] : " + arr1[4]);

    // 결과
    //    arr1[0] : 100
    //    arr1[1] : 200
    //    arr1[2] : 300
    //    arr1[3] : 400
    //    arr1[4] : 500

    // 배열 선언과 초기화를 동시에
    int[] arr2 = {10, 20, 30, 40, 50};

    System.out.println("arr2[0] : " + arr2[0]);
    System.out.println("arr2[1] : " + arr2[1]);
    System.out.println("arr2[2] : " + arr2[2]);
    System.out.println("arr2[3] : " + arr2[3]);
    System.out.println("arr2[4] : " + arr2[4]);

    // 결과
    //    arr2[0] : 10
    //    arr2[1] : 20
    //    arr2[2] : 30
    //    arr2[3] : 40
    //    arr2[4] : 50
  • 배열에 담기는 데이터의 자료형은 모두 동일해야 한다.
  • int[] arr1 = new int[5]; 
    • int 형의 데이터를 담는 배열을 새로 만드는데 배열의 크기는 5이다.
      • 배열의 크기만큼 메모리를 확보했다.
  • arr1[0] = 100;
    • 배열의 0번 인덱스에는 100을 넣는다.
  • int[] arr2 = {10, 20, 30};
    • int 형의 데이터를 담는 배열을 만들어서 10, 20, 30을 넣는다.
    • => int[] arr2 = new int[3];
    •      arr2[0] = 10;
    •      arr2[1] = 20;
    •      arr2[2] = 30;
  • 자바에서 배열의 크기가 한 번 결정되고 나면 변경이 불가능하다.
  • 배열의 크기를 넘어서는 인덱스에 접근하려고 하면 에러가 발생한다.
    • System.out.println("arr2[5] : " + arr2[5]); 
    • => Index 5 out of bounds for length 5

 

7.3 배열을 이용한 학사관리

  • 배열은 주로 많은 데이터를 쉽게(효율적) 관리하기 위해서 사용한다.
    // 배열을 이용한 학사관리
    String[] name = {"박찬호", "이승엽", "박병호", "이병규", "류현진"};
    int[] score = new int[5];
    Scanner scanner = new Scanner(System.in);
    System.out.printf("%s의 점수를 입력하시오. : ", name[0]);
    score[0] = scanner.nextInt();

    System.out.printf("%s의 점수를 입력하시오. : ", name[1]);
    score[1] = scanner.nextInt();

    System.out.printf("%s의 점수를 입력하시오. : ", name[2]);
    score[2] = scanner.nextInt();

    System.out.printf("%s의 점수를 입력하시오. : ", name[3]);
    score[3] = scanner.nextInt();

    System.out.printf("%s의 점수를 입력하시오. : ", name[4]);
    score[4] = scanner.nextInt();

    System.out.printf("%s 점수 : \t%.2f\n", name[0], (double)score[0]);
    System.out.printf("%s 점수 : \t%.2f\n", name[1], (double)score[1]);
    System.out.printf("%s 점수 : \t%.2f\n", name[2], (double)score[2]);
    System.out.printf("%s 점수 : \t%.2f\n", name[3], (double)score[3]);
    System.out.printf("%s 점수 : \t%.2f\n", name[4], (double)score[4]);

    double ave = (double)(score[0] + score[1] + score[2] + score[3] + score[4]) / 5;
    System.out.printf("-------------------------------------\n평 점 : \5%.2f", ave);

    scanner.close();
    
    // 결과
    //    박찬호의 점수를 입력하시오. : 95
    //    이승엽의 점수를 입력하시오. : 85
    //    박병호의 점수를 입력하시오. : 75
    //    이병규의 점수를 입력하시오. : 99
    //    류현진의 점수를 입력하시오. : 80
    //    박찬호 점수 :    95.00
    //    이승엽 점수 :    85.00
    //    박병호 점수 :    75.00
    //    이병규 점수 :    99.00
    //    류현진 점수 :    80.00
    //    -------------------------------------
    //    평 점 :   86.80
  • Scanner : 사용자에게 데이터를 입력 받을 때 사용한다.
728x90

'Java' 카테고리의 다른 글

6강 연산자  (0) 2021.07.31
5강 특수 문자와 서식 문자  (0) 2021.07.30
4강 기본자료형  (0) 2021.07.30
3강 변수  (0) 2021.07.30
2강 Java 프로그램의 실행 구조  (0) 2021.07.28