06. 조건문
조건문을 이용하면 조건의 참, 거짓에 따라 서로 다른 작업을 수행할 수 있다. 자바의 조건문은 C/C++과 거의 동일하며 크게 if-else문, switch문으로 분류된다.
[ 단순 if문 ]
단순 if문의 조건식은 비교 연산이나 논리 연산의 혼합된 식으로 구성되며 결과는 불린값이다. 조건식이 참이면 if 내부의 실행문장이 실행되며, 거짓이면 if문을 벗어난다. 조건식은 논리 타입 변수 하나만으로도 가능하며, 실행문장이 여러개의 문장으로 구성되면 중괄호 { } 사이에 묶어 한꺼번에 실행시킬 수 있다. 중괄호 사이에 묶인 여러 실행문장을 블록이라고 부르며, 하나의 단위처럼 다루어진다. 실행문장이 한 문장 뿐이면 중괄호를 생략할 수 있다.
[ if- else문 ]
if-else문은 if조건식이 참인 경우와 거짓인 경우에 실행할 문장을 각각 지시한다. 조건식이 true이면 if 내부의 실행문장을 실행하고 조건식이 false이면 else 내부의 실행문장을 실행한다.
[ 다중 if-else문 ]
다중 if-else문은 if-else가 연속되는 것으로, 위에서부터 비교하여 조건식이 참인경우 해당하는 실행문장을 실행한 후 다중if-else 전체를 벗어난다.
[ 중첩 if-else문 ]
if문이나 if-else문, else문의 실행문장에 if문이나 if-else문을 내포할 수 있다.
[ switch문 ]
값에 따라 여러 방향으로 분기하는 경우, if문보다 switch문을 사용하면 가독성이 높은 코드를 작성할 수 있다. switch문은 먼저 식을 계산하고 그 결과 값과 일치하는 case문으로 분기한다. case문의 실행문장을 실행한 후 break를 만나면 switch문을 벗어난다. 실행문장이 여러개인 경우에도 중괄호로 둘러싸지 않는다. 만일 어떤 case문의 값과도 같지 않은 경우, defalut문으로 분기하여 실행문장을 실행한다. default문은 생략가능하다.
- switch문에서 break문의 역할
어떤 case의 실행문장이 실행되고 만난 break문장은 switch문을 벗어나도록 지시한다. case문에 break문이 없다면 아래의 case문의 실행문장으로 break를 만날 때까지 계속 실행한다.
- case문의 값
case 문에 지정하는 값은 정수 리터럴, 문자 리터럴, 문자열 리터럴만 허용한다. 변수나 식은 사용할 수 없다.