자신에게 친절할 것 :)

Web Developing/Java

[java] 배열 3

Tashapark 2024. 4. 13. 18:12
728x90

// 남궁 성의 자바의 정석 듣는 중//

 

- 그냥 단순하게 1차원은 row, vector가 하나씩 있는 것이고, 2차원은 table 형태, 3차원은 2차원이 여러개, 4차원은 3차원이 여러개 일 때.

- 만들 때는 배열 만들고 [행] [열] 넣어주면 됨. 

- 걍 직관적으로 표의 형태로 만들어도 초기화 가능

- 2차원 배열은 행 배열의 배열(열)이라고 생각하면 됨. 

- 그래서 첫 줄은 score[0] 배열에서의 다시 0,1,2 각각에 값이 할당 되는 것

 

//2차원 배열은 2중포문을 사용하는 거 기억! 
		for (int i = 0; i < score.length; i++) { //행 ex. 4 
			for (int j = 0; j < score[i].length; j++) { //열 ex. 3 열의 길이가 다 다를 수 있으니깐, i로 적어줌. 
				System.out.printf("score[%d][%d]=%d%n", i, j, score[i][j]);

				sum += score[i][j];
			}
		}

 

class Ex5_9 {
	public static void main(String[] args) {
		 int[][] score = {
							  { 100, 100, 100}
							, { 20, 20, 20}
							, { 30, 30, 30}
							, { 40, 40, 40}
							, { 50, 50, 50}
						};
		//과목별 총점 
		int korTotal = 0, engTotal = 0, mathTotal = 0;

	    System.out.println("번호 국어 영어 수학 총점 평균");
	    System.out.println("=============================");

		for(int i=0;i < score.length;i++) {
			int  sum = 0;      // 개인별 총점 
			float avg = 0.0f;  // 개인별 평균 

			korTotal  += score[i][0];
			engTotal  += score[i][1];
			mathTotal += score[i][2];
			System.out.printf("%3d", i+1); //행번호가 0에서 시작하니깐 1을 더해줌 
			
			for(int j=0;j < score[i].length;j++) {
				sum += score[i][j]; 
				System.out.printf("%5d", score[i][j]);
			}

			avg = sum/(float)score[i].length;  //평균은 열(과목 수)로 나눠야 하니깐. 3.0으로 나눠야 해서 float해줌  
			System.out.printf("%5d %5.1f%n", sum, avg);
		}

		System.out.println("=============================");
     	System.out.printf("총점:%3d %4d %4d%n", korTotal, engTotal, mathTotal);
	}
}

//결과 값
번호 국어 영어 수학 총점 평균
=============================
  1  100  100  100  300 100.0
  2   20   20   20   60  20.0
  3   30   30   30   90  30.0
  4   40   40   40  120  40.0
  5   50   50   50  150  50.0
=============================
총점:240  240  240

 

- print(a); //"ab"  ,,? 

- 잘 이해는 안 가는데 일단. 기존 내용 변경이 아니라.. 새로 생긴다고? 그게 변경 아님?

 

- substring(1,4) => to 값인 4는 해당 안되고 1~3까지만 출력. //BCD

- to 생략시, => substring(1) => 1~4까지 출력. 즉, str.length()만큼 나타남. //BCDE

 

- 등가 연산자 사용하지 말 것. 그걸 쓰면 참조변수를 비교하기 위한 것이지 배열 비교를 위한 것이 아님. 

- 범위를 벗어나서 복사하려고 하면, 값에 0이 추가 됨. 

 

 

 

 

728x90
반응형

'Web Developing > Java' 카테고리의 다른 글

[Java] 객체지향 개념  (1) 2024.04.20
[Java] 객체지향 언어  (0) 2024.04.13
[java] 배열2  (0) 2024.04.12
[Java] 배열  (0) 2024.04.02
[Java] 조건문과 반복문: if, if else if, switch문 // for, while, do-while문  (1) 2024.03.29