반응형
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));
}
}
반응형