반복문의 종류는 for, while, do-while이 있으며,
for문과 while문은 서로 변환이 가능하며 반복문을 작성할 때 어느 방향을 선택해도 좋지만,
for문은 반복횟수를 알고 있을 때 주로 사용하고, while문은 조건에 따라 반복할 때 사용한다
for문은 조건식이 참인 동안 주어진 횟수만큼 실행문을 반복적으로 수행한다.
public class Main {
public static void main(String[] args) {
int sum = 0;
for(int i = 0 (초기화); i < 10 (조건식); i++ (증감식) ) {
sum += i;
}
System.out.println(sum); // 1~9의 합인 45가 출력됩니다.
}
}
반복문에선 i라는 변수명을 많이 사용한다. i(iterator 반복계수)를 의미한다.
만약 반복문이 없다면 sum = sum + (숫자);
를 10번이나 사용해서 작성 해야할 것이다.
하지만 for문을 사용한다면 코드량을 획기적으로 줄일 수 있다.
++
는 반복문에서 자주 사용하는 증감연산자로, 피연산자의 값을 1 증가시킨다.쉬운 이해 예시론,조건식을 충족하는 동안 초기화식부터 시작해서 증감식의 규칙을 따라 실행 된다.
조건이 충족하지 않으면, 실행문을 실행하지 않고 끝나게 된다
그러니 초기화식이 필요 없는 경우엔 초기화식을 생략 할 수 있다.
for(int i=0, j=100; i<=50 && j>=50; i++, j--) {
실행문;
실행문;
}
// 초기화식이나 증감식도 둘 이상이 될 수 있다.
향상된 for문은 반복실행을 하기 위해 카운터 변수와 증감식을 사용하지 않는다.
배열 및 컬렉션 항목의 갯수만큼 반복하고 자동으로 for문을 빠져나간다.
public class EnhancedForLoop {
public static void main(String[] args) throws Exception {
String[] names = {"kimminseok", "minthug", "kms"};
for(String name : names) {
System.out.println(name + "님은 자바를 공부중 입니다.");
}
}
}
/*
kimminseok님은 자바를 공부중 입니다.
minthug님은 자바를 공부중 입니다.
kms님은 자바를 공부중 입니다.
*/
for문의 괄호 안에는 배열에서 꺼낸 항목을 저장할 변수 선언, 콜론(:), 그리고 사용할 배열이 작성된다.
향상된 for문을 처음 실행 할 때는, names 배열에서 가져올 첫번째 값이 존재하는지 확인 후, 값이 존재하면 해당값을 변수인 name에 저장한다.
그리고 그 안의 실행문을 실행, 블록 내부의 실행문이 모두 실행 되면 다시 names 배열에서 가져올 값이 있는지 확인 후 만약 가져올 다음 항목이 없다면 자동적으로 for문을 종료한다.
while문은 조건식이 true일 경우 계속해서 반복한다.
int i = 0, z = 0;
while (i <= 10){
z += i;
i ++;
}
System.out.println(z);
do-while문은 조건식에 반복해서 실행하는 것이 while문과 동일하다.
while문은 시작 할 때부터 조건식을 검사하여 블록 내부를 실행하지 결정하지만, 경우에 따라서 블록 내부의 실행문을 우선 실행시키고 실행 결과에 따라서 반복 실행을 계속 할지 여부를 경우도 있다.
do {
(1)실행문
} while ((2)조건식);
break문은 반복문인 for, while, do-while, switch문을 중지 시킬때 사용된다.
public class Main {
public static void main(String[] args){
Outer : for(int i = 3; i < 10; i++){
for(int j = 5; j > 0; j--){
System.out.println("i " + i + " j "+ j);
if(i == 5){
break Outer;
}
}
}
}
}
i 3 j 5
i 3 j 4
i 3 j 3
i 3 j 2
i 3 j 1
i 4 j 5
i 4 j 4
i 4 j 3
i 4 j 2
i 4 j 1
i 5 j 5
continue문은 반복문인 for,while,do-while문에서만 사용 되는데,
블록 내부에서 continue문이 실행되면 for문의 증감문 혹은 while, do-while문의 조건식으로 이동하여 작동한다.
continue와 break의 차이점은 반복문 종료 여부이다.
continue는 반복문을 종료하지 않고 다음 차례로 넘어가 계속 반복을 수행한다.
break처럼 continue도 보통 if문과 함께 사용하는데, if문의 조건을 만족하는 경우 continue를 실행하여 그 이후 코드를 실행하지 않고 다음 반복으로 넘어간다.