Array (배열)

배열

  • 자바에서 배열은 int[] a; Strint[] a; 이렇게 표현한다.
  • 정수 10개를 저장할 수 있는 배열을 생성해 a에 대입한다.
  • a = new int[10]; or a = new int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  • 배열의 인덱스 번호는 0번부터 시작한다.

배열 예시1

int[] numbers = new int[5];
double[] numbers2 = new double[5];
String[] names = new String[5];

배열 예시2

// 새 배열 생성하기
int[] scores;

// 정수 5개를 저장하는 배열 객체를 생성하고, 그 객체의 주소값을 scores에 대입하기
scores = new int[5];

// 배열의 각 요소에 인덱스를 사용해서 값을 저장하기
scores[0] = 70; // scores 변수가 참조하는 배열객체의 0번째 요소에 70 대입
scores[1] = 65;	
scores[2] = 90;		
scores[3] = 60;		
scores[4] = 80;	

// 배열의 크기 조회하기
int size = scores.length;
System.out.println("배열 크기: " +size); // 5 출력

// 배열의 각 요소에 저장된 값을 반복문을 사용해서 조회하기
for (int i = 0; i < size; i++) {
  System.out.println(scores[i]);
}

// 향상된 for문을 사용해서 값을 조회하기
for (int score : scores) {
  System.out.println(score)
}

배열 예시3

int[] scores = {60, 75, 55, 80, 100, 50, 95};
		
for (int score : scores) {
  System.out.println(score);
}
		
// 학생 이름을 포함하고 있는 배열객체 생성하기
String[] names = {"홍길동", "김유신", "강감찬", "이순신"};
		
for (String name : names) {
  System.out.println(name);
}

배열 예시4

// 학생들의 성적 배열을 생성하고 전체 학생의 평균을 계산해서 출력학
int[] scores = {60, 70, 40, 70, 85, 90, 40, 100, 75, 50, 35, 90, 100, 60, 70};

// 총점, 학생수, 평균을 저장할 변수를 선언하고 초기화하기
int total = 0;
int studentCount = scores.length;
int average = 0;

for (int score : scores) {
  total += score;
}

average = total / studentCount;

배열 예시5

// Scanner을 사용해서 성적을 10번 입력받아 배열에 순서대로 저장 후 총점, 평균 출력하기
import java.util.Scanner;
int[] scores = new int[5];
Scanner scan = new Scanner(System.in);
int average = 0;
int total = 0;

// 반복문을 사용해서 학생의 성적을 입력받기
for (int i = 0; i < scores.length; i++) {
  System.out.print("점수 입력: ");
  scores[i] = scan.nextInt();
}

for (int score : scores) {
  total += score;
  average = total / scores.length;
}

System.out.println("총점: " +total);
System.out.println("평균: " +average);

배열 예시6

// 학생 이름, 국어, 영어, 수학 점수를 입력받아 배열에 저장하고 학생별 총점과 평균 계산하기
import java.util.Scanner;

Scanner scan = new Scanner(System.in);

// 학생 이름, 국어, 영어, 수학 점수를 저장하는 배열 생성
String[] names = new String[5];
int[] korScores = new int[5];
int[] engScores = new int[5];
int[] matScores = new int[5];

// 점수를 각각 입력받아 해당 배열에 순서대로 저장하기
for (int i = 0; i < names.length; i++) {
  System.out.print("학생 이름을 입력하세요: ");
  names[i] = scan.next();
			
  System.out.print("국어점수를 입력하세요: ");
  korScores[i] = scan.nextInt();
			
  System.out.print("영어점수를 입력하세요: ");
  engScores[i] = scan.nextInt();
			
  System.out.print("수학점수를 입력하세요: ");
  mathScores[i] = scan.nextInt();
}

// 각각 정보를 출력하기
for (int i = 0; i < names.length; i++) {
  int totalScore = korScores[i] + engScores[i] + mathScores[i];
  int average = totalScore / 3;
  System.out.println(names[i]+"\t"+korScores[i]+"\t"+engScores[i]+"\t"+mathScores[i]+"\t"+totalScore+"\t"+average);
}