조건문이란 하나의 식에서 나온 값, 혹은 변수에 존재하는 값이 논리적으로 true인지, false인지 확인하여 각각의 결과에 따라 다른 로직이 실행되도록 결정하는 매우 중요한 문법이다.
java에서 조건문은 위 3개가 기본으로, if else문, else 문은 생략이 가능하지만 if문은 절대로 생략하고 작성할 순 없다.
if(조건식){
실행문장
}
기본적인 if 문의 생성이다.
( ) 내부의 조건식이 true이면 { } 내부에 존재하는 실행문장이 실행되는 구조이다. 만약 조건식이 false라면 { } 내부는 그냥 무시한다.
그렇다면 만약 조건식이 false일때 실행됐으면 하는 문장이 있다면?
if(조건식){
true일때 실행문장
}else{
false일때 실행문장
}
이런 경우에 필요한 것이 else 문이다. else문은 혼자 존재하지 못하고, if문 다음에 붙어야한다.
하지만 조건이 여러개라면?
if(조건식1){
조건식 1이 true일때 실행문장
}else if(조건식2){
조건식 2가 true일때 실행문장
}else{
전부 false일때 실행문장
}
이럴때 else if 문을 if문과 else문 중간에 넣으면 된다.
주의할 점은 else if 조건이 비슷하거나 아무리 많아도 실행문장은 1개만 실행된다는 것이다.
조건식을 한번에 2개를 검사하고 싶다면 if문 내부에 if문을 작성할 수 있다.
int a = 3;
if(a>1){
if(a<5){
실행문장
}
}
위 코드는 a가 1보다 크고 5보다 작으면 실행문장이 실행되는 2중 if문이다.
물론 이 코드도 틀린것은 아니지만
&& 연산자와 || 연산자를 사용한다면 가독성을 높힐 수 있다.
&& 연산자는 논리 연산자로, 양 옆에 있는 조건문이 모두 true일때 true를 출력하고
|| 연산자는 양 옆에 있는 조건문이 하나만 true여도 true를 출력한다.
int a = 3;
if((a>1)&&(a<5){
실행문장
}
위 조건식에서 &&를 사용한다면 a가 1보다 크고 5보다 작을때 true 실행문장이 실행되도록 할 수 있다.
&& 연산자와 || 연산자를 사용할때, 꼭 알아야하는 것이 있다.
&& 연산자는 앞쪽에 존재하는 조건식이 false라면 뒤에 있는 조건식을 실행하지 않고 넘어간다.
이와 반대로 || 연산자는 앞에 있는 조건식이 true라면 뒤에 있는 조건식을 실행하지 않고 넘어간다.
int a = 1
if((a>3)&&(a+=1>0){
실행문장
}
이렇게 코드가 있다고 하자.
마지막에 변수 a에 존재하는 값은 과연 얼마일까.
정답은 1이다.
&& 연산자 앞에 있는 조건식이 false이기 때문에 뒤에 존재하는 조건식이 실행되지 않아 a+=1 식이 실행되지 않았다.
이러한점만 주의 한다면 사실 조건식은 매우 간단하기 때문에 무리없이 이해 할 수 있을 것이다.