'반복문' 에는 'while' 문과 'for' 문이 있습니다. 먼저 'while' 은 중괄호 ' { } ' 안의 실행 구문을 조건에 맞을 때가지 반복 실행하게 됩니다.
int num = 10;
while (num < 20) { // 조건이 참인 동안 종속문장을 실행한다
num += 1;
System.out.println("while) num : " + num);
// GOTO while
}
<※ 결과는 다음과 같습니다.>
// 1) while
int cnt1 = 0;
while (cnt1 > 5) {
System.out.printf("cnt1(%d) : Hello", cnt1);
cnt1 += 1;
}
// 2) do ~ while
int cnt2 = 0;
do {
System.out.printf("cnt2(%d) : Hello", cnt2);
cnt2 += 1;
} while(cnt2 > 5);
<※ 결과는 다음과 같습니다.>
이를 '무한 반복'이라고 합니다.
while (num > 0) {
num += 1;
System.out.println("infinite loop) num : " + num);
}
System.out.println("끝");
<※ 결과는 다음과 같습니다.>
컴퓨터를 구성함에 있어 '3대 요소' 는 '연산', '기억', '입출력' 입니다.이 중에서 저희는 해당 현상을 설명하기 위해 '연산' 을 주목해야 합니다. '무한 반복'은 결국 '연산' 을 무한으로 실행하는 것으로 이를 실행하는 장치인 'CPU'에 과부화를 주게 됩니다. 그렇다면 보여 드린 예시의 사용율이 100%까지 올라가는데 얼마가 걸렸을까요? 정답은 '2 ~ 3초' 정도의 짧은 시간에 도달했다는 것입니다. 여기까지만보면 '무한 반복'은 그저 오류 구문에 불과하다고 생각하실 수도 있습니다. 그렇지만 '무한 반복' 을 사용해야 되는 경우도 존재합니다. 저희가 평소에 사용하는 '운영체제'가 이에 해당합니다. 컴퓨터를 종료하기 전까지 지속적으로 시스템이 운용이 되어야 하기때문이죠. 하지만 '무한반복' 은 언젠가 끝나야 합니다. 컴퓨터를 종료하는 것처럼 말이죠.
이러한 역할을 수행하는 것이 바로 '제어 키워드' 인 'break', 'continue' 가 있습니다.먼저 설명드릴 '제어 키워드'는 'break' 입니다. 'break'는 'if 제어문' 을 제외한 가장 가까운 중괄호({ })를 탈출하는 역할을 수행하게 됩니다. 직전에 말씀드린 '무한 반복' 을 벗어날 수 있는 방법입니다.
int num = 1;
while (num > 0) {
num += 1;
System.out.println("infinite loop) num : " + num);
// break : 현재 속한 반복문 범위를 아래로 벗어난다
if (num == 10) {
break;
}
}
<※ 결과는 다음과 같습니다.>
'continue' 는 반복문 실행 도중 '조건식' 검색 또는 '증감식'을 수행하게 됩니다.다음의 예시로 설명을 드려보겠습니다.
'for 문' 은 실행구문을 반복적으로 수행하지만 일반적으로는 반복 횟수가 정해질 때 주로 사용 하게 됩니다.
for(int i = 0; i < 5; i++) { // 조건식 = (1)변수선언; (2)조건; (4)증감식
System.out.print(i);
System.out.println(" : Java"); // (3)종속문장
}
// 실행 순서 : 1 → 2 → 3 → 4 → 2 → 3 → 4 → 2 → 3 → 4
<※ 결과는 다음과 같습니다.>
'중첩된 for 반복문' 은 다수의 값을 2개 이상의 기준으로 나누어서 처리하고 싶을 때 사용합니다.
int num = 1;
for(int i = 0; i < 5; i++) { // 세로 줄을 결정짓는 요소
for(int j = 0; j < 5; j++) {// 가로 칸을 결정짓는 요소
System.out.printf("(%d, %d) : %2d\t", i, j, num);
num++;
}
System.out.println();
}
System.out.println("끝");
<※ 결과는 다음과 같습니다.>