티스토리 뷰

  • 배열(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++;
    		}
    	}



댓글