while 문의 변형으로 기본 구조는 같으나 조건식과 블럭의 순서를 바꿔놓은 것.
do-while
, 말 그대로 블럭 내 코드 수행 후 조건식을 평가한다. 최소한 한 번은 블럭 내 코드가 실행 된다는 의미.
do{
// 조건식 참일 때 수행
} while(조건식);
for(int i=1;i<=100;i++){
int tmp = i;
// while 조건문에서 연산을 시행하는데, i 를 직접 변경하면 for 의 조건문에 영향이 간다. 따라서 임시 변수 지정.
System.out.print(i);
do{
if(tmp % 10 % 3 == 0 && tmp % 10 != 0){
System.out.print("짝");
}
} while((tmp/=10) != 0);
System.out.println();
}
break
를 만나면 자신이 포함된 가장 가까운 반복문을 벗어난다.
반복문 내에서만 사용될 수 있으며, 반복이 진행되는 도중에
continue
문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다. (continue
문 이후의 문장 수행 X, 다음 반복으로)
for
문의 경우 증감식으로, while
, do-while
문의 경우 조건식으로 이동한다. 전체 반복 중에 특정 조건을 만족하는 경우를 제외하고자 할 때 유용.
하나 이상의 반복문을 벗어나거나 건너뛸 수 있다.
중첩 반복문의 경우 break 로는 근접한 하나의 반복문만 벗어날 수 있다.
이때는 중첩 방복문 앞에 이름을 붙이고 break 문과 continue 문에 이름을 지정해 줌으로써 하나 이상의 반복문을 벗어나거나 반복을 건너뛸 수 있다.
Loop1 : for(int i=1;i<=9;i++){
for(int j=1; j<=9; j++){
if(j==5){
break Loop1;
// continue Loop1;
// continue;
}
System.out.println(""+i+","+j);
}
}
// Loop1 을 break 했으므로 i=1, j=1,2,3,4 까지만 출력된 후 반복문이 종료.
// continue Loop1 경우 i=1, j=5 에서 i=2, j=1 로 점프.
// continue 의 경우 1, 4 후 1, 6으로 1, 5 출력이 생략.