같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
int score1, score2, score3 int score[] = new int[3];
- 배열의 선언과 생성
- 선언
: int[] score // 자바
: int score[] // C언어 계열
- 생성
: int[3] score = new int[3];
: int score[3] = new int[3];
- 초기화// 1번째 방법 int score[3] = new int[3]; int score[0] = 100; int score[1] = 10; int score[2] = 150; // 2번째 방법 int[] score = {100, 10, 150} // 3번째 방법 int[] score = new int[]{100, 10, 150}
배열특징
- 자료구조 : 자료 조직/관리/저장
배열튜플리스트해쉬큐스택- 같은 데이터타입 : 데이터타입이 다르면 안 됨
- 맨 앞(순열) : 순서가 앞에서부터 시작
- 변경불가 : 한 번 결정되면 변경할 수 없음
- 데이터타입 뒤에 [ ] 가 들어가면 모두 배열 변수로 선언된 것
- 배열은 반드시 사용하기 전 선언과 초기화가 먼저 이루어져야 함
- 배열도 참조자료형으로 위치정보를 참조하는 자료형
참조형으로 변함, null->초기화(기본형 빼고 다 씀)
- 인덱스번호로 초기화하는 방법 (길이가 5개인 배열 객체 생성)
- 둘이 다름(" " : 빈문자열이 있는 것 / null : 값 자체가 존재하지 않는 것
- 사용방법
에러의 세 종류
1. 컴파일단계 에러 - 문법 오류
: run하기 전 상태의 오류
2. 런타임단계 에러(치명적) - 실행 오류
: run 후 오류
3. 컨텍스트(문맥) 단계 오류
- 로또번호 뽑는 프로그램
(이어서) 내림차순
- 배열 안의 배열 (n차원 배열이라 부름)
- 다차원 배열
- int[][] scores; //2차원 배열
- int[][][] scores //3차원 배열
int [5][3] score = { {100,100,100}, {100,100,100}, {100,100,100}, {100,100,100}, {100,100,100}, }
String a = "mega"; String b = "mega"; a==b → TrueString c = new String("mega"); String d = new String("mega"); c==d → Falsec와 d는 참조하고 있는 메모리 주소가 다름
이때 equals 메서드를 사용하면 문자열값 자체는 같다고 나옴
문제
- 02
- 03
- 04
int n = new Scanner(System.in).nextInt();
int divider = 10;
int radix = 1;
//n이 몇번째 자릿수 인지 확인 alg
while (true) {
if(divider>n) break;
else {
divider *= 10;
radix++;
}
}
int[] number = new int[radix];
divider = 10;
//12345
for(int i=0;i<radix;i++){
if(i==0) {
number[i] = n%divider;
}
else{
number[i]=(n%(divider*10))/divider;
divider *= 10;
}
}
for(int a:number)
System.out.print(a);
