[Java] 반복문 for / while
반복문
- 조건이 true일 때만 동작한다.
- 중괄호 안의 내용을 수행한 후, 다시 되돌아가 조건을 비교한다.
- 조건이 false가 될 때까지 계속해서 반복한다.
while문
- while문과 if문은 완벽하게 동일하다.
- while(true)로 쓰면 무한동작하기 때문에 조심해야 한다.
- 조건이 항상 true가 되지 않도록 조건식을 설정해야한다.
|
수식 구조 |
내용 |
|
while ( 조건문 ) { 실행코드 } |
조건문이 true이면 반복해서 실행코드를 수행한다. 조건문이 false가 될 때까지 반복한다. |
|
break; |
자신이 포함된 하나의 반복문 또는 switch 문을 빠져나간 후 종료한다. 주로 if문과 함께 사용한다. |
|
continue; |
그 아래의 내용을 건너뛴 다음 다시 반복으로 넘어간다. |
int i = 0;
while(i < 5){
System.out.println(i);
i++;
}
//조건문의 만족에 따른 반복 종료
//실행결과
//0
//1
//2
//3
//4
int i = 0;
while(true){
if(i == 5){
break;
}
System.out.println(i);
i++;
}
//무한반복하다가 i가 5가 되면 break로 반복문 종료
//실행결과
//0
//1
//2
//3
//4
int i = 0;
while(i < 5){
if(i < 2){
i++;
continue;
}
System.out.println(i);
i++;
}
//i가 2보다 작으면 continue로 인해 즉시 이번 반복을 종료하고 다음 반복으로 넘어간다.
//실행결과
//2
//3
//4
do / while문
- do 일단 실행 후에 while 조건문을 비교하여 반복한다.
- 나머지는 while문과 동일하다.
|
수식 구조 |
내용 |
|
do { 실행코드 } |
일단 실행코드를 수행한다. |
|
while ( 조건문 ) { 실행코드 } |
조건문이 true이면 반복해서 실행코드를 수행한다. 조건문이 false가 될 때까지 반복한다. |
|
break; |
자신이 포함된 하나의 반복문 또는 switch 문을 빠져나간 후 종료한다. 주로 if문과 함께 사용한다. |
|
continue; |
그 아래의 내용을 건너뛴 다음 다시 반복으로 넘어간다. |
int i = 0;
do{
System.out.println(i);
i = 4;
} while(i < 5){
System.out.println(i);
i++;
}
//do를 실행하고 i의 값을 바꾼다.
//while의 조건을 만족할 때까지 반복한다.
//실행결과
//0
//4
for문
- while문과 for문은 완벽하게 동일하다.
|
수식 구조 |
내용 |
|
for (초기화; 조건식; 증감식) { |
초기화 -> 조건식 -> 실행코드 -> 증감식 -> 조건식 의 순서로 실행된다. |
|
break; |
자신이 포함된 하나의 반복문 또는 switch 문을 빠져나간 후 종료한다. |
|
continue; |
그 아래의 내용을 건너뛴 다음 다시 반복으로 넘어간다. |
for(int i=0; i<5; i++){
System.out.println(i);
}
//i는 0부터 시작한다.
//i가 5보다 작으므로 true
//실행코드를 수행한다.
//i의 값이 증가한다.
//증가한 i의 값으로 조건문을 비교하여 false가 될 때까지 반복한다.
//실행결과
//0
//1
//2
//3
//4
이름이 붙은 반복문
- 반복문에 이름을 지정하여 break나 continue로 해당되는 이름의 반복문을 종료하거나 건너뛸 수 있다.
int i = 0;
wrapperRoop : while(true){
System.out.println("반복" + i);
for(int j=0; j<2; j++){
if(i == 3){
break wrapperRoop;
}
System.out.println("j = " + j);
}
i++;
}
//2중으로 반복하다가 i가 3이 되면 break로 while문 종료
//실행결과
//반복0
//j = 0
//j = 1
//반복1
//j = 0
//j = 1
//반복2
//j = 0
//j = 1
//반복3