2021. 1. 19. 17:58ㆍDev.Program/Java & Spring
======== Test.java 만들기
문제 ) 학생 이름과 점수를 출력
- 이름을 저장할 배열(names) ⇒ "홍길동", "이순신", "강감찬", "김태희", "정우성"
- 점수를 저장할 배열(score) ⇒ 80, 60, 70, 100, 90
String[] names = {"홍길동", "이순신", "강감찬", "김태희", "정우성"};
int[] score = {80, 60, 70, 100, 90};
for(int i = 0; i < names.length; i++) {
System.out.println(names[i] + " : " + score[i] + "점");
}
> 푼 답
======== Ex2.java 만들기
p.151
< 2차원 배열 >
- 1차원 배열들의 집합
- ⇒ 행렬의 형태와 비슷한 구조
- ⇒ 실제 데이터는 열에 해당하는 공간에 저장되며 열의 메모리 주소를 행이 관리한다. 또한, 행의 메모리 주소를 배열 변수가 관리한다.
- 행 크기 : 배열명.length
- 열 크기 : 배열명[행번호].length
< 기본 문법 >
데이터타입[][] 변수명 = new 데이터타입[행크기][열크기];
변수명[행번호][열번호] = 데이터;
- 행 크기와 열 크기를 알아야 반복문에 쓸 수 있다.
======== Test2.java 만들기
문제 )
학생 5명의 3과목에 대한 점수 관리
- 2차원 배열 score 생성
- 데이터를 다음과 같이 초기화 한 후 출력
- 나는 이렇게 선언했는데
int[][] score = {{100, 80, 60}, {50, 50, 50}, {80, 77, 90}, {100, 100, 100}, {60, 60, 60}};
- 이렇게 한 번에 선언도 가능( 뒤에서 배움! )
문제 2 ) 응용문제
문제 ) 학생별 총점을 저장할 1차원 배열 studentTotal 생성
- 일단은 이렇게 만들거!
- 좌표를 먼저 찍어준다.
- 각 학생별 점수를 1차원 배열 studentTotal 에 누적 하고
- 1차원 배열 학생 이름과 학생별 점수를 출력할건데
- 1차원 배열 학생 이름과 학생별 점수를 출력을 먼저 해보기!
for(int i = 0; i < score.length; i++) {
System.out.println(names[i] + " : " + studentTotal[i] + "점");
}
- 1차원이기 때문에 for 문 따로 작성해줌! 위에와 별개.
- studentTotal 에 점수 누적하기.
마지막 문제 ) 과목별 총점을 1차원 배열 subjectTotal 에 누적
- 이렇게 나오도록 풀기
======== Ex3.java 만들기
p.155
< 2차원 배열 선언 및 생성, 초기화까지 한 번에 수행하는 문장 >
데이터타입[][] 변수명 = {
{"0번행 데이터1", "0번행 데이터2", ..., "0번행 데이터n"},
{"1번행 데이터1", "1번행 데이터2", ..., "1번행 데이터n"},
{"2번행 데이터1", "2번행 데이터2", ..., "2번행 데이터n"},
...
{"m번행 데이터1", "m번행 데이터2", ..., "m번행 데이터n"}
};
======== Test3.java 만들기
문제 ) 직접 배열 초기화 수행
- print() 대신 printf() 로 System.out.printf("%2d ", arr[i][j]); 도 가능
문제 ) 중첩 for 문을 활용하여 2차원 배열에 1 ~ 25 사이의 숫자를 차례대로 저장
응용 문제 ) ㄹ 모양으로 숫자가 써지도록..
- 모르게따...ㅎㅎ if 문 쓰다가 포기...
처음에 if로 풀다가
for(int j = arr[i].length - 1; j >= 0 ; j--) {
→ 이부분을 내가 틀려서 답이 안나왔던거였음.
⇒ for문 안에 if 문을 넣어도 상관은 없지만 for문 실행하는 동안 if 문이 계속 돌기때문에 연산횟수가 많아짐!
if 문을 밖으로 빼내면 한번만 비교하고 반복할 수 있기 때문. (이게 훨씬 더 좋은 코드)
======== Ex4.java 만들기
p153, 157
- 1, 2, 3, 4, 5 차례대로 정렬할 것.
- 우리 눈에는 5와 2를 바꾸고 계속 바꾸는 거지만 사실 5 데이터를 꺼내서 2 데이터 자리에 넣고 하는거다. 근데 5데이터를 꺼내서 2에 넣는 순간 2 데이터는 지워짐(변수에는 하나밖에 저장이 안되기때문)
⇒ 그래서 정렬에 필요한 두 데이터 간의 스위치 시, 임시로 데이터를 저장할 임시변수 필요
- 이렇게 하면 1, 2, 3, 4, 5 오름차순으로 정렬가능
'Dev.Program > Java & Spring' 카테고리의 다른 글
[Java] 클래스의 객체 / 인스턴스화 (0) | 2021.01.19 |
---|---|
[Java] 메서드(Method) (0) | 2021.01.19 |
[Java] 배열 (0) | 2021.01.19 |
[Java] while문 / do~while문 / break / continue (0) | 2021.01.19 |
[Java] switch~case문 / 반복문 / for문 (0) | 2021.01.14 |