Java

반복문

Beekei 2021. 9. 12. 14:13
반응형

for문

지정한 횟수만큼 반복되어 괄호{}안에 문장을 반복 수행

for문안에 조건식이 생략된 경우 true로 간주되어 무한 반복문이 된다.

for (초기화; 조건식; 증감식) {
	...
}

for (int i = 1; i <= 5; i++) { // i(1)가 5까지 증가하며 괄호안에 문장을 수행
	System.out.println(i);
}

향상된 for문(enhanced for statement)

JDK1.5부터 배열과 컬렉션에 저장된 요소에 접근할 때 기존보다 편리한 방법으로 처리할 수 있도록 for문의 새로운 문법이 추가되었다.

for (타입 변수명 : 배열 또는 컬랙션) {
	...
}

List<String> strList = new ArrayList("a", "b", "c");
for (String str : strList) { // strList의 들어있는 row의 수만큼 반복하며 괄호안에 문장을 수행
	System.out.println(str);
}

while문

참(true)인 동안 블럭{}내에 문장을 반복 수행

조건식이 거짓인 경우 문장 전체를 벗어난다.

조건문이 항상 참일 경우 무한 반복문이 된다.

초기화나 증감식이 필요하지 않은 경우라면 for문 보다 while문이 적합

while(조건식) {
	...
}

int i = 1; // 초기화
while (i <= 10) { // 조건식
	System.out.println(i);
	i++; // 증감식
}

break문

자신이 포함된 가장 가까운 반복문을 벗어난다.

특정조건을 만족해 break문을 만나 반복문을 벗어났을때 break문 아래 문장은 수행되지 않는다.

int sum = 0;
int i = 1;
while (true) {
	if (sum >= 100) break; // sum이 100이상일땐 반복문을 벗어남
	sum += i;
	i++;
}

continue문

반복문 내에서만 사용 가능하며 continue문을 만났을때 다음 반복으로 넘어간다.

특정조건을 만족해 continue문을 만나 다음 반복으로 넘어갔을때 continue문 아래 문장은 수행되지 않는다.

for (int i = 1; i <= 5; i++) { // i(1)가 5까지 증가하며 괄호안에 문장을 수행
	if (i % 2 == 0) continue; // i가 2의 배수일땐 다음 반복으로 넘어감
	System.out.println(i); // 1, 3, 5
}

이름 붙은 반복문

break문은 근접한 단 하나의 반복문만 벗어날 수 있기 떄문에, 여러 개의 반복문이 중첩된 경우 반복문에 이름을 붙히고 break문과 continue문에 이름을 지정해 줌으로써 하나 이상의 반복을 중지하거나 건너뛸 수 있다.

// 구구단 출력 예제
loop1 : for (int i = 2; i <= 9; i++) {
	for (int j = 1; j <= 9; j++) {
		if (j == 5) break loop1; // 2 * 4 까지만 출력하고 중지
		if (j == 5) continue loop1; // i * 4 까지만 출력하고 다음 단으로 넘어감
		System.out.println(i + " * " + j + " = " + (i * j));
	}
}
반응형