제어문(Control Flow Statement)
- 제어문이란, 프로그램 실행 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 것이다.
- 일반적으로 조건식과 실행 구문인 중괄호(블록, { })으로 구성되어 있다.
제어문의 종류
- 조건문(decision-making statements): if문, switch문
- 반복문(looping statements): for문, while문
- 분기문(branching statements): break, continue, return
조건문-if문
- 조건식의 결과에 따라 블록 실행여부가 결정
- 조건식에는 boolean 변수 또는 true/false 값을 산출하는 연산식
- 조건식이 true이면 블록 실행, false이면 실행하지 않음
if문 종류
if(조건식) {
// 조건식이 참일 경우 실행 구문
}
- 조건식의 결과에 따라 블록 실행여부가 결정
- 조건식에는 boolean 변수 또는 true/false 값을 산출하는 연산식
- 조건식이 true이면 블록 실행, false이면 실행하지 않음
if-else문if(조건식) {
// 조건식이 참일 경우 실행 구문
}else {
// if문의 조건식이 거짓일 경우 실행 구문
}
- if문이 false일 경우 else 문으로 넘어감
- 조건식의 결과에 따라 이 두 개의 블록 중 한 블록만 실행 후 if문을 벗어남
if-else if-else문if(조건식A) {
// 조건식A가 참일 경우 실행 구문
} else if(조건식B) {
// 조건식A가 거짓이고, 조건식B가 참일 경우 실행 구문
} else if(조건식C) {
// 조건식A, B가 거짓이고, 조건식C가 참일 경우 실행 구문
} else {
// 모든 조건식이 거짓일 경우 실행 구문
}
- 조건문이 여러 개인 다중 if문
- if 블록 끝에 else if문을 통해 false 일 경우 계속 다음 else if 문으로 넘어감
- else if문의 수는 제한이 없다
- 여러 개의 조건식 중 true가 되는 블록만 실행하고 전체 if문을 벗어남
중첩 if문if(조건식 A) {
// 조건식 A가 참일 경우 실행 구문
if(조건식 B) {
// 조건식 A와 B가 참일 경우 실행 구문
}
}
- if문 블록 내에 또 다른 if문을 사용하는 것
- 중첩의 단계는 제한이 없어 실행흐름을 잘 판단하여 작성
참고: Oracle JAVA Documentation에서는 if-then (=if)문과 if-then-else(if-else문과 if-else if-else문)문 두개로 나눈다. (여기서는 if-else문 설명을 위해 좀더 자세히 분류했다.)
switch문
- if문과 달리 변수가 어떤 값을 갖느냐에 따라 실행문이 선택
- if문의 경우의 수가 많아질 수록 switch 문을 사용하는 것이 효과적
- 괄호 안의 동일한 값을 갖는 case로 가서 실행문을 실행
- 동일한 값의 case가 없으면 default로 가서 실행문 실행(생략 가능)
- 변수 값에 따라 case가 실행된 후 제어문을 빠져나가기 위해 break; 사용
형식
switch(변수) {
case 값1:
실행문;
break;
case 값2:
실행문;
break;
default: // 생략 가능
실행문;
break;
}