DAY+6 배열(기본, 특징)
2020. 8. 28. 14:49ㆍWeb_Back-end/JAVA_선행
◎ 배열을 이용하는 이유
▷ 많은 데이터를 처리할 수 있다. → ex) 1000명의 성적을 처리하는 프로그램, 성적을 저장하는 변수를 만들려고 할 때
▷ 자바는 "동일한 자료형"의 변수를 여러개 저장할 수 있는 저장장소이다.
◎ 배열 선언 방법 (배열이란 객체이다)
- 배열의 참조변수 선언하기 int[] s; //여기서 s가 참조변수
- 배열 생성하기 s = new int[10]; //10은 배열의 개수, 크기
- 한번에 작성가능 int[] s = new int[10]; //but! int s[10]; 선언과 동시에 크기를 정할 수는 없다.
◎ 배열 특징
- 자동으로 숫자는 0, 문자는 null, Boolean 은 false 로 초기화됨
- 배열의 크기를 변수로 선언가능 ex) int size = 10; int[] s = new int[size];
- 배열의 크기는 한 번 생성되면 변경할 수 없다. (크기 변경 배열 : ArrayList - 나중에 추가할 예정)
※ 배열의 크기를 생성한 수에는 [ ] 안에는 크기가 못들어옴 ∴ 처음 생성한 [ ] 이후에 [ ] 안에는 인덱스만 들어감
◎ 배열 요소 접근
- 배열의 인덱스는 0부터 시작이다
- 배열을 사용할 때, 인덱스 범위를 지키지 않으면 오류
- 크기가 10인 배열 -> int s[] = s[0], s[1], s[2] ... s[9] 인덱스는 0부터 시작
- 값 저장&출력 방법 -> 저장: s[0] = 80; 출력: print(s[0]); ===> 모두 인덱스로 접근
◎ 반복문과 배열
- 배열과 반복문은 쌍둥이같은 존재이다
- 배열의 크기를 구하는 함수 >> length
◎ 배열의 초기화
- 연산자 new 생략가능
- 배열의 크기 지정할 필요 없음
- 배열의 참조변수 선언 -> 배열생성 -> 초기값저장 // 한번에 진행
- ex) int[] s = new int[5]; 를 int[] s = {10,20,30,40,50}; 이렇게 한번에 진행
- 주의 int[] s;
- s = new int[5]; 맞음
s = {10,20,30,40,50};틀린표현
< 예제풀기 >
//10크기의 배열을 선언
int size = 10;
int[] seat= new int[size];
//모든 반복문을 while문으로 감싼다
//while문이 break나올때까지 계속 반복->조건에 true
while(true) {
System.out.println("---------------------");
//1~10까지 출력-좌석번호
for(int i=0; i<10; i++) {
System.out.print(i+1+" ");
}
System.out.println("\n---------------------");
//seat배열을 모두 0(자동 초기화값)으로 출력-배열에 값이 없는상태
for(int i=0; i<seat.length; i++) {
System.out.print(seat[i]+" ");
}
System.out.println("\n---------------------");
System.out.print("원하시는 좌석번호를 입력하세요(종료는 -1): ");
Scanner input = new Scanner(System.in);
int user = input.nextInt();
//사용자 값을 받고나서 if문으로 경우를 나눔
//if1번 user값이 음수일경우-시스템종료
if(user<0) {
System.out.println("시스템을 종료합니다.");
break;
}
//if2번 user값==seat인덱스 번호 일때, 값이 0이면 1로 바꿔줌-예약되었다는 뜻
if(seat[user-1]==0) {
seat[user-1]=1;
System.out.println("예약되었습니다."+seat[user-1]);
}
//if2번이 아니면 즉, 배열값이 이미 1이면(예약됨) 예약불가출력
else {
System.out.println("이미 예약된 자리입니다.");
}
}
Console 창 예시 ▼
더보기

2번 좌석예매-다시 2번좌석예매시도-종료

'Web_Back-end > JAVA_선행' 카테고리의 다른 글
DAY+8 배열(ragged,jagged array & ArrayList) (1) | 2020.09.01 |
---|---|
DAY+7 배열(단어 기본정리)/for-each, 복사, 난수, 2차원배열 (1) | 2020.08.30 |
DAY+5 for문을 활용한 별찍기(중첩반복문) (0) | 2020.08.17 |
DAY+4 선택과 반복(조건문, 반복문), 난수 생성 (0) | 2020.08.16 |
DAY+3 형변환 / 입력과 출력 (0) | 2020.08.15 |