배움과 복습
2017-08-29 화요일 배움: 배열(Array)
뚜비콩
2017. 8. 29. 10:29
- 배열(Array)
1차원 배열 선언
int[] a;
int a[];
2차원 배열
int[] a[]; //다 같은 의미지만 이렇게는 잘 안 씁니다.
int[][] a;
int a[][];
※목록 값으로도 배열을 생성할 수 있다.
데이터타입[] 변수 = { 값1, 값2, ... };
인덱스 번호: 0~(배열의 길이-1)
String names = null; names = new String[] { "차", "정", "김" };
new 연산자로 배열 생성
타입[] 변수 = new 타입[길이];
or
타입[] 변수 = null;
변수 = new 타입[길이];
생성자가 아니기 때문에 소괄호가 없습니다. 직접적으로 배열의 길이를 줍니다.
public void ex1() { //배열을 선언하는 방법 // 1) 배열 선언 즉시 초기값 대입 int[] scores = {55, 66, 77, 88, 99}; // 2) 배열 선언 후 나중에 초기값 대입 String[] names; //선언 names = new String[] {"홍길동", "일지매", "임꺽정", "성춘향"}; // 3) 배열의 크기만을 지정하여 선언 char[] gender = new char[5]; // = { 'M', 'F', 'M', 'M', 'F' }; //System.out.println(gender[3]); } // 배열의 첨자(인덱스)를 사용하여 배열에 접근 public void ex2() { // 1) 초기값이 5개 있는 정수형 배열을 선언 int[] five = { 0, 1, 2, 3, 4 }; //int[] five = new int[5]{} 이렇게 써도 됩니다만 여기선 초기값이 주어졌으니까 //int[] kor = { 11, 22, 33, 44, 55 }; // 2) 배열의 값을 첨자(인덱스)를 사용해 모두 출력 System.out.println(five[4]); System.out.println(five[2]); System.out.println(five); // 3) 반복문을 사용하여 five의 값을 모두 출력 for (int i=0; i<five.length; i++) { System.out.println("for문을 이용한 "+five[i]+"번째 배열 출력: "+five[i]); } int x=0; while (x!=5) { System.out.println("while문을 이용한 "+five[x]+"번째 배열 출력: "+five[x]); x++; } } // 정수타입의 성적 5개를 배열에 저장한 후 반복문을 사용해 출력하고 // 총점과 평균을 계산해 출력하시오. public void ex3() { int[] scores = { 100, 95, 70, 68, 98 }; int total = 0; double avg = 0; int i = 0; for ( i = 0; i<scores.length; i++) { total += scores[i]; System.out.printf("%d번째 성적: %d\n", (i+1), scores[i]); } avg = total/(double)i; System.out.printf("총점: %d\n평균: %.2f\n", total, avg); } // 5명의 이름과 성적이 각각 배열 names, scores에 저장하고 // 반복문을 사용해 이름과 성적을 출력하시오. public void ex4() { //String[] names = {"홍길동", "일지매", "임꺽정", "춘향이", "월매"}; int[] scores = { 64, 70, 45, 80, 92 }; String[] names; names = new String[] {"가", "나", "다", "라", "마"}; int i = 0; for (i=0; i<names.length; i++) { System.out.printf("이름: %6s||성적:%4d\n", names[i],scores[i]); //포맷 앞에 -숫자 붙이면 왼쪽 정렬 } }
ex4의 for문을 while문으로 수정
//ex4()소스의 반복문을 while문으로 수정 public void ex5(){ int[] scores = { 64, 70, 45, 80, 92 }; String[] names; names = new String[] {"홍길동", "일지매", "임꺽정", "춘향이", "월매"}; int i = 0; while (i<names.length) { System.out.printf("이름:%5s 성적:%4d\n", names[i],scores[i]); //포맷 앞에 -숫자 붙이면 왼쪽 정렬 i++; } }