[Java] 제어문
Java는 기본적으로 위에서 아래로 실행하는 흐름을 가지고 있다. 이 흐름을 제어하는 것이 바로 제어문이다.
제어문은 조건문과 반복문이 존재한다.
- 조건문: if문, switch문
- 반복문: for문, while문, do-while문
1. if문
if문은 조건식의 결과에 따라 블록 실행 여부가 결정된다.
if (조건식) {
실행문;
실행문;
// 조건식이 true일 때 실행된다.
}
else 블록과 함께 사용하면 조건식이 false가 되는 경우도 고려할 수 있다.
if (조건식) {
// 조건식이 true일 경우 실행
} else {
// 조건식이 false일 경우 실행
}
조건식이 여러 개인 if문도 만들 수 있다. else if를 사용해 다양한 조건을 만든다.
단, if문은 단 한 개만 실행된다. 조건식 판별은 맨 위에서부터 시작되고, 먼저 true가 된 조건의 블록만 실행하고 조건문을 빠져나온다.
if (조건식1) {
// 조건식1이 true일 경우 실행
} else if (조건식2) {
// 조건식2가 true일 경우 실행
} else if (조건식3) {
// 조건식3이 true일 경우 실행
} else {
// 모든 조건식이 false일 경우 실행
}
2. switch문
변수의 값에 따라 실행문을 결정하는데 유리한 조건문이다. 특정 경우에 if문보다 훨씬 간결하게 표현할 수 있다.
switch (변수) {
case 값1:
// 실행문
break;
case 값2:
// 실행문
break;
case 값3:
// 실행문
break;
default:
// 실행문
}
변수의 값에 해당하는 case문을 실행하고, else-if문과 같이 조건 판별은 위에서 아래로 이루어진다. 만약 break가 존재한다면 switch문을 빠져나오고, 존재하지 않는다면 다음 case의 실행문을 실행한다. 이 경우엔 값의 비교가 이루어지지 않고 바로 실행문이 실행된다.
3. for문
for문은 실행문을 정해진 횟수만큼 반복해서 실행할 수 있도록 도와준다.
for( 1.초기화식; 2.조건식; 4.증감식) {
3.실행문;
}
맨 처음 초기화식이 실행된다. 다음으로 조건식이 실행되며 true인 경우 실행문이 실행되고, fasle인 경우 for문을 빠져나간다.
실행문이 모두 끝나면 증감식이 실행되고, 다시 조건식이 실행되어 반복된다.
4. while문
while문은 조건식이 true인 경우 계속 반복하고, false인 경우 멈춘다.
while (조건식) {
// 조건식이 true라면 실행
}
조건식이 true가 되는 경우 무한히 반복하기 때문에, 조건식에서 탈출 조건을 명확히 설정하거나, 실행문에서 반복문을 빠져나가기 위한 조건을 확실히 명시해야 한다.
5. do-while문
do-while문은 while문과 동일하지만 실행문이 맨 처음 한 번 실행되고 조건식을 통해 반복을 평가한다.
do {
// 실행문
} while (조건식);
6. break문
break문은 반복문의 실행을 중지하거나, switch문을 종료할 때 사용한다.
반복문이 중첩된 경우, break문을 포함한 가장 가까운 반복문만 종료한다. 만약 안쪽의 break문으로 바깥쪽 반복문을 제어하고 싶은 경우, 반복문에 이름을 붙여 명시적으로 break문을 사용하면 된다. 이를 레이블이라고 한다.
Loop1: for (...) {
for (...) {
break Loop1;
// Loop1이라는 이름이 붙은 반복문이 종료된다.
}
}
7. continue문
continue문은 실행문을 종료하고 바로 조건식으로 이동한다. 즉, continue를 만난 순간 해당 루프에서 다음 루프로 넘어가는 것이다. 반복문을 종료하지 않고 계속 실행된다는 점이 break문과 다르다.