Java/Java 기본

조건문

검정비니 2018. 6. 10. 21:35
728x90
반응형

조건문



조건문은 상황에 따라 어떤 문장은 수행하고 싶고, 어떤 문장은 수행하고 싶지 않을 때에 사용한다. 조건문을 이용하여 조건의 참, 거짓에 따라 서로 다른 작업을 수행할 수 있다.


자바에서 조건문으로는 if문, if-else문, 그리고 switch문이 있다.




1. 단순 if문


단순 if문의 구문은 다음과 같다.



if ( 조건식 ) {

실행 문장

...

}



여기서 조건식은 비교 연산식이거나 논리 연산자와 혼합된 식으로 구성되며 결과는 불린 값이다. 조건식이 true이면 if 내부의 실행 문장이 실행되며, false이면 if 문을 벗어난다. 조건식은 노리 타입 변수 하나만으로도 구성이 가능하다.



만약 실행 문장이 한줄이라면 다음과 같이 {} 없이 표현 할 수도 있다.


if ( 조건식 ) 실행문장;


if (조건식)

실행문장;



2. if-else 문


단순 if 문은 if 문의 조건식이 참인 경우에만 실행 문장이 실행되며, 조건식이 거짓인 경우에는 아무 일도 하지 않고 if 문을 벗어난다. if-else 문은 if의 조건식이 참인 경우와 거짓인 경우에 각각 실행할 문장을 지시할 수 있다.



if-else 문의 구문은 다음과 같다.


if ( 조건식 ) {

실행문1

}

else {

실행문2

}



조건식이 true이면 실행문1을 실행한 후에 if-else 문을 벗어나고, false이면 실행 문장2를 실행한 후 if-else 문을 벗어난다.




2-a. 중첩 if 문 (nested if statement)  :  else if 문


if 문이나 if-else 문의 실행 문장에 다시 if 문 또는 if-else 문을 내포할 수 있다. 이런 조건문을 중첩 if 문이라고 부른다. 중첩 if 문은 여러 가지 모양으로 구성할 수 있으나 전형적인 모양은 다음과 같다. (일반적으로 조건문을 추가할 수 있는 else if 문을 사용한다.)


if ( 조건문1 ) {

실행 문장 1;

}

else if ( 조건문2 ) {

실행 문장 2;

}

else if ( 조건문3) {

실행 문장 3;

}

else {

실행 문장 4;

}



위와 같이 중첩 조건문은 다수의 else if 문을 가질 수 있으며, 그 수에 제한이 없다. 다만 조건문의 남용은 프로그램의 속도를 느리게 만들기 때문에 논리 구조를 잘 만든 후에, 필요한 경우에만 조건문을 사용하도록 한다.





3. switch 문


하나의 식의 값에 따라 여러 방향으로 분기하고자 하는 경우 if 문을 사용하게 되면 보기에 복잡하다. 이런 경우 switch 문을 사용하면 표현하기도 좋고 코드의 가독성도 높일 수 있다. switch 문은 다음과 같이 구성된다.


switch (식) {

case 값1 :

실행 문장 1;

break;

case 값2 :

실행 문장 2;

break;

...

case 값n :

실행 문장 n;

break;

default :

일치하는 값이 없을 시에 실행시킬 문장;

}


case 문은 switch 문 내에서만 사용되는 것으로 switch 문의 식을 평가한 값에 따라 분기를 지시하는 문이다. 식을 평가한 결과 '값1'과 같으면 실행 문장1을 실행하고, '값2'와 같으면 실행 문장2를 실행한다. 만일 어떤 case 문으로도 분기하지 못하는 경우 default 문으로 분기하여 그에 해당하는 문장이 실행된다. default 문은 생략이 가능하다.



- switch 문 내의 break 문


switch 문에서 break 문은 매우 중요한 역할을 한다. case의 실행 문장이 실행되고 break 문장을 만나면 switch 문을 벗어나도록 지시한다. 만일 어떤 case 문에 break 문이 없다면 다음 case 문의 실행 문장을 계속 실행하게 되며 언젠가 break 문을 만나게 될 때까지 계속 실행한다.



- case 문의 값


switch 문은 식의 결과 값을 case 문과 비교한다. 다수의 조건을 비교하고 범위를 비교할 수 있는 if 문과는 다르다. case 문에 지정하는 비교 값은 기본 데이터 타입 중에서는 정수와 문자 타입 리터럴만 허용하며, 실수 타입은 허용하지 않는다. JDK 1.7 부터는 문자열 리터럴도 허용한다.

반응형

'Java > Java 기본' 카테고리의 다른 글

for문  (0) 2018.06.10
반복문  (0) 2018.06.10
연산자  (0) 2018.06.09
자바에서의 키 입력  (0) 2018.06.08
타입 변환  (0) 2018.06.08