- 지정된 횟수만큼 수행문을 반복 실행할 때 사용한다.
for (초기식; 조건식; 증감식) {
수행문1;
수행문2;
수행문3;
}
초기식 -> 조건식 -> 수행문 -> 증감식 -> 조건식 -> 수행문 -> 증감식
-> 조건식 -> 수행문 ...
1) 우항에는 반복처리의 대상이 되는 배열객체가 위치한다.
2) 좌항에는 배열객체의 각 요소에 저장된 값을 전달받는 적절한 타입의 변수가 선언되어야 한다.
3) 수행문에서는 반복이 수행될 때마다 변수에 저장된 값(배열객체의 각 요소에 저장된 값을 순서대로 전달받은 것)을 이용한다.
for (타입 변수명 : 배열) {
수행문;
System.out.println(변수명);
}
for (타입 변수명 : 콜렉션) {
수행문;
}
배열 - 값을 여러개 저장하고 있는 배열객체를 참조하는 참조변수명
타입 - 배열의 각 요소에 저장되는 값의 타입과 일치하는 자료형
변수 - 배열의 각 요소에 저장된 값을 반복이 실행될 때 마다 순서대로 하나씩 전달받는다.
int i = 0; // 초기화
while (i <= 10) { // 조건식
System.out.print(i);
i++; // 증감식
}
1) 조건식이 참(true)면 블럭{} 안으로 들어가고, 거짓(false)면 while문을 벗어난다.
2) 블럭{}의 문장을 수행하고 다시 조건식으로 돌아간다.
do {
수행문;
} while (조건식);
for (int i=1; i<=10; i++) {
if (i == 6) {
break;
}
System.out.println(i);
}
// 1,2,3,4,5까지 출력하고 반복문 종료
for (int i=1; i<=10; i++) {
if (i == 6) {
continue;
}
System.out.println(i);
}
// 1, 2, 3, 4, 5, 7, 8, 9, 10을 출력한다. 6만 건너뛰고 반복문 수행한다.
for (초기식; 조건식; 증감식) {
수행문1;
for(초기식; 조건식; 증감식) {
수행문2;
}
}
1) 수행문1은 바깥쪽 for문의 반복 횟수만큼 실행된다.
2) 수행문2는 (바깥쪽 for문의 반복 횟수*안쪽 for문의 반복 횟수)만큼 실행된다.
- 변수
- 정보가 하나의 값으로 구성된 경우
- 기본 자료형 혹은 문자열 타입의 변수를 생성해서 값을 저장한다.예) 국어점수 = 100 형식) String x = “홍길동”; int x = 1000;
- 배열, 콜렉션
- 정보가 같은 타입의 값 여러개로 구성된 경우
- 배열 혹은 콜렉션은 같은 타입의 값을 여러개 저장할 때 생성한다.
- 배열 혹은 콜렉션은 값을 여러개 저장하고 있기 때문에, 반복처리가 필수다.
- 배열 혹은 콜렉션보다는 배열 혹은 콜렉션에 저장된 값이 처리 대상이다.
- 배열에는 보통 단일값이 아니라 객체 단위로 저장된다. 객체 단위가 배열에 저장되는 것을 배열객체라고 부른다.예) 우리반 학생들의 이름 = [홍길동, 김유신, 강감찬, 이순신] 형식) String[] names = [“김유신”, “홍길동’, “강감찬”, “이순신”]; String[] names = new String[10]; int[] scores = {100, 30, 60, 70, 80}; int[] scores = new int[10];
- 객체, 맵
- 정보가 서로 다른 타입의 값으로 구성된 경우
- 프로그램 처리 대상이 되는 정보의 값을 전부 표현하는 설계도를 작성한다.
- 설계도로 객체를 생성하면, 그 설계도에 정의된 변수들에 값을 저장할 수 있다.
- 특히, 정보를 표현하는 객체를 ValueObject(VO)라고 부른다.예) 상품정보 번호 =100 이름 = mac book pro 제조사 = 애플 가격 = 1500000 할인율 = 0.001 적립율 = 0.005 판매여부 = true 형식) public class Product { int no; String names; int price; double discountRate; double depositRate; boolean onSell; }
같은 타입의 여러 변수를 하나의 묶음으로 다르는 것을 말한다.
크기를 지정해야 생성이 가능하고 크기 변경은 불가능하다.
같은 타입의 데이터만 저장이 가능하다.
고유한 주소값을 가지고 있다.
형식)
타입[] 변수명 = new 타입[크기];
타입[] 변수명 = {값, 값, 값, 값};
타입[] 변수명 = new 타입[]{값, 값, 값, 값};
- new는 객체를 생성시키는 키워드다.
- int x;는 정수값을 저장하는 변수x다.
- int[] x;는 배열객체의 주소값을 저장하는 변수 x다.
주소값을 잃어버린 변수는 두번 다시 같은 객체를 참조할 수 없다. (자바한정)
연결이 끊어진 객체를 Garbage객체라고 부른다.
모든 배열객체는 배열의 크기 정보를 표현하는 length 프로퍼티가 있다.
배열객체의 각 요소에 접근할 때는 배열의 인덱스를 사용한다.
배열의 인텍스 범위는 0부터 '배열길이 - 1'까지다.
배열은 생성과 동시에 자동적으로 기본값(0)으로 초기화된다.
출력할 땐 반복문 또는 Arrays.toStirng(배열이름) 메소드를 사용해야 한다.
선언방법)
타입[][] 변수이름;
타입 변수이름[][];
타입[] 변수이름[];
예)
int[][] score = new int[4][3];
// int값을 저장할 수 있는 4행 3열의 다차원 배열 생성
초기화)
int[][] arr = new int[][]{{1,2,3}, {4,5,6}};
int[][] arr = {{1,2,3}, {4,5,6}};
int[][] arr = {
{1,2,3},
{4,5,6}
};
int[][] arr = {
{100,100,100},
{20,20,20},
{30,30,30}
{40,40}
};