배열
정의: 같은 자료형, 연속된 공간에 저장하는 것
관련된 용어: 배열명,인덱스, 밸류, 사이즈
값에 접근하는 방법: 배열명(인덱스),
만약에 값을 저장한다. ‘=‘ 사용
값을 출력하겠다. ‘sysout()‘ 사용
기존값에 10을 더하겠다 ‘=’,‘+’ 사용
String [] partName= {"java","mysql","oracle","html","css"};
값을 지정해서 배열을 만들 수 있다.
int [] point= new int[5];
new는 암기
int[]: int를 저장하는 자료형을 선언
point: 변수명(여기서는 배열 변수명)
int[5]: 배열의 크기: 5개의 int를 저장할 수 있는 공간
point[0]=80;
point배열의 0번 인덱스의 value의 값을 숫자 80자료를 저장한다.
point[1]=90;
point배열의 1번 인덱스의 value의 값을 숫자 90자료를 저장한다.
point[2]=58;
point[3]=49;
point[4]=93;
System.out.println(point[0]);
System.out.println(point[1]);
System.out.println(point[2]);
System.out.println(point[3]);
System.out.println(point[4]);
떨어져있는 자료형을 하나로 컨트롤 하기 위해 배열로 바꾼 것! 라인수를 줄이기 위해서는 더 배워야한다.
System.out.println(partName[0]+" "+point[0]); /*java 80*/
System.out.println(partName[1]+" "+point[1]); /*mysql 90*/
System.out.println(partName[2]+" "+point[2]); /*oracle 58*/
System.out.println(partName[3]+" "+point[3]); /*html 49*/
System.out.println(partName[4]+" "+point[4]); /*css 93*/
String [] fruit = new String[4];
fruit[0]="apple";
fruit[3]="melon";
System.out.println(fruit[0]);
System.out.println(fruit[1]);
System.out.println(fruit[2]);
System.out.println(fruit[3]);
값이 지정되지 않은 인덱스는 NULL로 출력된다.
sysout(배열명[10]);// 통째로 암기하지말고 나눠서 보기!
명령어 단위로 나누자 : sysout() 그리고 배열명에[10] 이렇게 나눠서 암기
성취도가 높아지는 방법은 이론을 정확하게 암기하는 것이 중요합니다.
선언하는 방법 2가지
1. 크기만 지정하는 방법
2. 초기값을 설정하는 방법
문제) 숫자 다섯 개를 저장하는 배열 배열명은 a이다.
int [] a=new int[5]; 또는 new int[5]=int [] a;
문제) 문자열 4개를 저장하는 배열, 배열명은 b이다. 초기값은 a,b,c,d
string [] b={"a","b","c","d"};
관련된 용어로 먼저 분석하시오
배열명 b,인덱스 0-3, size:4 <<버릇처럼 분석하는 습관 만들기
문제에서 지정한 자료형을 확실히 알고 가기
만약 문제에서 !문자!라고만 한다면
byte [] b={'a','b','c','d'};
문제 1
int [] p={10,20,30,40,50};
배열의 값을 다음과 같이 바꾸세요
앞에 2개의 값을 자신의 위치에 저장한다.
예를들어 2번 인덱스위치는
2번 인덱스위치 = 1번인덱스 + 0번인덱스
단 인덱스가 위 배열에서 벗어나면 0으로 한다.
조건, 값을 더할 때는 갱신된 값이 아닌 10, 20, 30, 40, 50을 기준으로 갱신한다.
결과배열 = {0,10,30,50,70}
int [] p={10,20,30,40,50};
p[4]=p[3]+p[2];
p[3]=p[2]+p[1];
p[2]=p[0]+p[1];
p[1]=p[0]+0;
p[0]=0;
System.out.println(p[0]);
System.out.println(p[1]);
System.out.println(p[2]);
System.out.println(p[3]);
System.out.println(p[4]);
문제 2
철수는 골프 게임을 만들고 있다.
함정은 4개의 점(좌표)를 연결해서 사각형으로 만든다
함정의 위치의 좌표는 다음과 같다.
int x=30; int y= 40;
함정의 크기는 가로와 세로 각 20이다.
(단, 함정의 모든 좌표는 x좌표는 30이상, y좌표는 40이상)
int nowx=35; // 골프공의 x좌표
int nowy=35; // 골프공의 y좌표
골프공이 함정에 빠졌는지를 판단하는 식을 작성하시고 이를 출력하시오.
골프공의 크기는 무시한다.
변수는 x,y,nowx,nowy만 사용한다.
System.out.println( nowx>=x && nowx<=(x+20) && nowy>=y && nowy<=(y+20));
문제 3
String word={"a","b","c","d","e"}
int a = 3; //a는 인덱스 위치이다.
다음조건에 맞게 출력하시오.
출력 문자열은 a인덱스 위치의 2번째 뒤 문자열이다. 만약 a가 배열의 인덱스 범위를 벗어나면
앞으로 이동한다. 예들들어 a=3 경우, 두번째 뒤인 4 -> 0 출력은 a가 된다.
System.out.println(word[(a+2)%5]);