for문 : 반복 횟수를 알고 있을 경우 사용하는 것이 좋다.
for (초기화; 조건식; 증감식){
//조건식이 참일 때 수행될 문장
}
초기화 - 반복문에 사용될 변수를 최기화하는 부분이며 처음에 한번만 수행된다. 하나 이상의 변수를 사용하는 것도 가능하다.
조건식 - 조건식이 참이면 반복을 계속하고, false이면 반복을 중단한다. 조건식을 잘못 설정하게 되면 반복문이 수행되지 않거나 무한반복문이 생기게 된다.
증감식 - 반복문을 제어하는 변수의 값을 증가 또는 감소시키는 식. 증감식 역시도 하나이상의 변수를 사용할 수 있다.
위의 세가지 모두 생략이 가능하며 for(;;)로도 사용할 수 있다.
중첩 for문 : ofr문안에도 for문이 가능하며 중첩횟수에는 거의 제한이 없다.
향상된 for문
for(타입 변수명 : 배열 또는 컬렉션){
//반복할 문장
}
아래의 두 문장의 결과는 같다. 그러나 향상된 for문은 배열이나 컬렉션에 저장된 요소를 읽어오는 용도로만 사용이 가능하다.
for(int i=0; i < arr.length; i++){
System.out.println(arr[i]);
}
for(int tmp : arr){
System.out.println(tmp);
}
while문 : 조건식이 거짓이 될때 까지 {}블럭 내의 문장을 반복한다.
while (조건식) {
//조건식의 연산결과가 참인 동안, 반복될 문장들을 적는다.
}
while문의 조건식은 생략이 불가능하다. 항상 참이되게 하려면 true를 사용한다.
do-while문 : while문과 기본적인 구조는 같으나 조건식과 블럭의 순서를 바꿔놓았다.while문에서 최소 한번 수행될 것을 보장하는 반복문이다.
do{
//조건식의 연산결과가 참일 때 수행될 문장들을 적는다.
}while(조건식);
break문 : 반복문에서도 switch문처럼 break를 사용할 수 있으며, 자신이 포함된 가장 가까운 반복분을 벗어난다. 주로 if문과 함께 사용하여 반복문을 벗어난다.
continue문 : 반복문내에서만 사용될 수 있으며, 반복문이 진행되는 도중에 continue문을 만나게 되면 반복문의 끝으로 이동하여 다음 반복문으로 이동한다. for문의 경우 증감식으로 이동하며, while문과 do-while문의 경우 조건식으로 이동한다. break와는 다르게 반복문 전체를 벗어나지 않고 다음 반복을 수행한다.
for(int i =0; i <=10; i++){
if(1%3)
continue;
System.out.println(i);
}
}
} //1,2,3,4,7,8,10 이라는 결과가 출력된다.
이름 붙은 반복문 : break문은 단하나의 반복문만을 벗어날 수 있다. 여러개의 반복문이 중첩된 경우는 break문으로 중첩 반복문을 완전히 벗어날 수 없어 break문와 continue문에 이름을 지정해 줌으로써 하나 이상의 반복문을 벗어나거나 반복을 건너 뛸 수 있다.
Loop1 : for(int i=2; i <= 9; i++){
for(int j =1; j <=9; j++){
if(j==5)
break Loop1;
// break;
// contunue Loop1;
// continue
System.out.println(i+"*"+ j + +"=" + i*j);
}//end of for i
System.out.println();
}//end of Loop1
}
} //결과 2*1 = 2 2*2 =4 2*3 =6 2*4 = 8
댓글