[혼공자][week2] Day8 제일 헷갈리는 배열 (추가숙제 포함)

Ida·2025년 1월 24일
0

혼공자

목록 보기
8/20

더 간결한 코드 작성을 하도록 고민해보고 논리적 사고를 할 수 있도록 노력하기

05-2 배열

3. 배열 길이

배열에 저장할 수 있는 전체 항목의 개수
배열 변수.length로 배열 길이 읽을 수 있음.
읽기 전용 필드라 값 변경은 안 됨.

배열의 length 필드 (손코딩)

4. 명령 라인 입력

main() 메소드 매개값 없이 실행 (손코딩)

길이 0인 String 배열이 매개값이라 if문은 true로 반환

main() 메소드 매개값 주고 실행

[Run] - [Run Configurations]

5. 다차원 배열

  • 2차원 배열: 행과 열로 구성된 배열

배열 속에 배열 (손코딩)

6. 객체를 참조하는 배열

String 변수와 String[]을 동일하게 취급
== 연산자는 객체 번지 비교
equals() 메소드는 문자열 비교

객체를 참조하는 배열 (손코딩)

7. 배열복사

배열 생성 후엔 크기 변경 x
-> 더 큰 배열 생성 후 이전 배열에서 항목 값을 복사 해야함.

for문 | System.arraycopy() 사용

for문으로 배열 복사 (손코딩)

배열 복수 후 빈 공간은 int 기본값 0으로 초기화

System.arraycopy()로 배열 복사 (손코딩)

System.arraycopy(원본 배열, 원본 배열 복사 시작 인덱스, 새 배열, 새 배열 붙여넣을 시작 인덱스, 복사할 개수)

8. 향상된 for문

향상된 for문에서는 루프 카운터 변수, 증감식 사용 X
for(타입 저장할변수 : 배열)

향상된 for문 (손코딩)

9. 확인문제

4번

배열에서 최대값 찾기

for문으로 최대값 구하는 방법 (답안지 ver.)

for(int i=0; i<array.length; i++) {
	if(max < array[i] {
    	max = array[i];
    }
}

no4

5번

for문으로 전체 합과 평균값 구하기

  • for문에서 count 코드 작성
  • avg 계산 코드에서 (double) 강제 타입 변환 잊으면 안 됨.
  • 길이가 다른 배열의 전체 합 구하는 for문 코드 꼭 기억해두기

6번 (추가숙제)

어려웠던 부분

  • 입력 받은 학생수를 배열 길이로하여 배열 생성
    새로운 배열 생성을 안 했더니 27라인에서 scores[0]까지만 출력되고 else if문이 종료됨. -> scores[]이 null로 초기화 되어 있었기 때문에 새로운 배열 생성은 필수!
if(selectNo == 1) {
				System.out.print("학생수> ");
				studentNum = Integer.parseInt(scanner.nextLine());
				scores = new int[studentNum];
				
			} 
  • 최대값 구하는 방법을 생각 못 해서 헤매었다.
    구글링으로 for문 쓰면 된다는 아이디어를 얻어 스스로 해결.
    처음 작성 코드는 if문으로 변수 i, j 생성하여 인덱스끼리 비교하는 방식으로 작성 했음.
    답안 참고하여 더 간결한 코드로 재작성함.
  • 기존에 합계 구하는 코드를 따로 작성하여 똑같은 for문이 2개 있었음. 동일한 for문이면 하나에 다 작성하면 된다는 것을 몰랐음. 답안 참고하여 수정.
  • 변수 avg가 double타입인데 강제 타입 변환을 안 해서 예시와 다른 결과가 나와 바로 수정함.
} else if(selectNo == 4) { 
	int max = 0;
	int sum = 0;
	double avg = 0;
				
	for(int i=0; i<scores.length; i++) {
		max = (max < scores[i]) ? scores[i] : max;
		sum += scores[i];
	}
	avg = (double) sum/studentNum;
				
	System.out.println("최고 점수: " + max);
	System.out.println("평균 점수: " + avg);
			}

05-3 열거타입

1. 열거타입선언

`public enum 열거타입이름 {열거상수}

  • public enum: 열거 타입 선언을 위한 키워드
  • 열거타입이름: 관례적으로 첫글자 대문자, 나머지는 소문자
  • 열거상수: 관례적으로 모두 대문자

2. 열거타입변수

열거타입도 타입이라서 변수 선언 후 사용
-> 열거타입 변수;

열거타입변수 선언 후 열거상수 저장
-> 열거타입 변수 = 열거타입.열거상수;

* 열거상수는 열거객체로 생성됨

자바에서 날짜 정보 얻기

Calendar 변수 선언
Calendar.getInstance()로 Calendar 객체 얻기
Calendar now = Calendar.getInstance();

열거 타입과 열거 상수 (손코딩)

switch문에서 today에 열거 상수 대입
업로드중..

profile
나는 이다이다.

0개의 댓글

관련 채용 정보