지금까지는 코드의 실행흐름이 무조건 위에서 아래로 한 문장씩 순차적으로 진행되었지만 때로는 조건에 따라 문장을 건너뛰고, 같은 문장을 반복해서 수행해야할 때가 있다.
이처럼 프로그램의 흐름을 바꾸는 역할을 하는 문장들을 '제어문'이라고 한다.
조건문
조건문은 조건식과 문장을 포함하는 블록{}으로 구성되어 있으며,
조건식의 연산결과에 따라 실행할 문장이 달라져서 프로그램의 실행흐름을 변경할 수 있다.
조건문은 if문과 switch문, 두 가지가 있으며 주로 if문이 많이 사용된다.
1. if 문
if문은 가장 기본적인 조건문이며, 다음과 같이 ‘조건식’과 괄호 {}로 이루어져 있다.
if(조건식){
//조건식이 참(true)일 때 수행될 문장들을 적는다.
}
자바에서 조건식의 결과는 반드시 true 또는 false이어야 한다는 것이 중요하다.
만약 조건이 맞지 않을 때 처리를 어떻게 해야할까??
2. if-else 문
if문의 변형인 if-else 문의 구조는 다음과 같다.
if(조건식){
//조건식이 참(0이 아닌 값)일 때 수행될 문장들을 적는다.
}else{
//조건식이 거짓(0)일 때 수행될 문장들을 적는다.
}
if-else 문을 사용한 것이 하나의 조건식만 계산하면 되므로 더 효율적이고 간단하다.
if-else 문은 두 가지 경우 중 하나가 수행되는 구조인데,
만약 처리해야할 경우의 수가 2개 이상 일때는 어떻게 해야할까??
3. if-else if문
그럴 때는 한 문장에 여러 개의 조건식을 쓸 수 있는 if-else if 문을 사용하면 된다.
if(조건식1){
//조건식1의 연산결과가 참일 때 수행될 문장들을 적는다.
}else if(조건식2){
//조건식2의 연산결과가 참일 때 수행될 문장들을 적는다.
}else{
//위의 어느 조건식도 만족하지 않을 때 수행될 문장들을 적는다.
}
4. 중첩 if문
if문의 블럭 내에 또 다른 if문을 포함시키는 것이 가능한데 이것을 중첩 if문이라고 부르며
중첩의 횟수에는 거의 제한이 없다.
if(조건식1){
if(조건식2){
//조건식 1과 조건식 2가 모두 true일 때 수행될 문장들
}else{
//조건식 1이 true이고, 조건식2가 false일 때 수행되는 문장들
}
}else{
//조건식1이 false일 때 수행되는 문장들
}
5. switch 문
if문은 조건식의 결과가 참과 거짓, 두 가지 밖에 없기 때문에 경우의 수가 많아질수록
else-if를 계속 추가해야하므로 조건식이 많아져서 복잡해지고, 여러 개의 조건식을 계산해야하므로
처리 시간도 많이 걸린다.
이러한 if문과 달리 switch 문은 단 하나의 조건으로 많은 경우의 수를 처리할 수 있고,
표현도 간결하기에 알아보기 쉽다.
switch (조건식){
case 값1 :
//조건식의 결과가 값1과 같을 경우 수행될 문장들
break; //조건문을 빠져나온다.
case 값2 :
//조건식의 결과가 값2와 같을 경우 수행될 문장들
break;
default :
//조건식의 결과와 일치하는 case문이 없을 때 수행될 문장들
}
switch문에서 break문은 각 case문의 영역을 구분하는 역할을 하는데,
만일 break문을 생략하면 case문 사이의 구분이 없어지므로 다른 break문을 만나거나
switch 문 블록{}의 끝을 만날 때까지 나오는 모든 문장들을 수행합니다.
이전 글
2021.10.24 - [분류 전체보기] - Java 3장 연산자란??
다음 글