자바 조건문
if 문
자바에서 특정 조건에 해당하는 코드를 수행하게 될 때 if문을 사용한다.
예를 들어 코딩을 하다가 "A변수가 7보다 크면 A값을 0으로 대입해라" 라는 코드는 다음과 같이 작성한다.
1
2
3
4
5
|
if( A > 7 ){
A = 0;
}
|
만약 A변수 값이 8이라면 if에서 사용되는 "A > 7" 이라는 조건식에 부합하기 때문에 "A = 0" 인 코드를 실행한다.
하지만 A변수 값이 5라면 부합하지 않기 때문에 if안의 A=0코드를 수행하지 않는다.
if ~ else문
if문은 else와 같이 작성할 수 있다. 작성방법은 다음과 같다.
if( 조건식 ) { 코드 }else { 코드 } |
if에서 사용하는 조건식에 부합하면(true) if문 하위의 코드가 실행되고 조건식에 부합하지 않으면 else문 하위의 코드가 실행된다.
다음 예제 코드를 보면 이해하기 쉽다.
예제)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
int A = 6;
if( A > 7 ) {
A = 0;
}else {
A = 1;
}
System.out.println(A);
|
결과)
1
|
1
|
위 코드에서 A값을 6으로 초기화 했으므로 if조건식인 "A > 7"은 성립되지 않는다. 그러므로 else 하위의 코드가 실행되므로 "A = 1" 코드가 수행되고 최종적으로 1값이 출력된다.
if ~ else if ~ else문
다수의 조건식을 필요로 할때에는 if - else if - else문을 이용하여 처리 할 수 있다. 작성방법은 다음과 같다.
if( 조건식 ) { 코드 }else if(조건식){ 코드 }else if(조건식){ 코드 }else { 코드 } |
모든 조건식에 부합하는지 체크하며 어떤 조건식에도 부합하지 않는다면 else하위 코드가 실행된다.
다음 예제 코드를 통해 확인해보자
예제)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
int A = 6;
if( A > 7 ) {
A = 0;
}else if( A > 6){
A = 1;
}else if( A > 5) {
A = 2;
}else {
A = 3;
}
System.out.println(A);
|
결과)
1
|
2
|
변수 A를 6값으로 초기화 하였고 각 조건식 중에서 " A > 5 " 연산에 부합하기 때문에 " A = 2 " 코드가 수행되므로
2값이 출력된다.
중첩 if문
if문 하위에 if문을 사용 할 수 있다. 이를 중첩 if문 이라고 한다. 사용법은 다음과 같다.
if( 조건식 ){ if( 조건식 ){ 코드 } } |
다음 예제코드를 통해 확인해 보자.
예제)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
int yourMoney = 10000;
String dessert= "";
if( yourMoney > 5000 ) {
if( yourMoney > 7000 ){
dessert = "cake and coffee";
}else{
dessert = "coffee";
}
}
System.out.println(dessert);
|
결과)
1
|
cake and coffee
|
if문과 연산자
if문에서 사용하는 조건식은 대부분 비교연산자(관계연산자)와 &&(and), ||(or), !(not)연산자들과 함께 사용되는 경우가 많다.
비교연산자는 https://codehouse.tistory.com/6 에서 확인할 수 있다.
&&, ||, ! 연산자의 의미는 다음과 같다.
구 분 |
사 용 |
의 미 |
&& (AND) |
A && B |
A와 B 모두 참(true)여야 참이다. |
|| (or) |
A || B |
A와 B 둘 중 하나만 참(true)여도 참이다. |
! (not) |
!A |
A가 거짓(false)이면 참이다. |
다음 예제 코드와 주석을 보면 이해하기 쉽다.
예제)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
int A = 7;
int B = 8;
if( A > 8 && B > 7) { // A > 8 이 거짓(false)이므로 && 연산결과 거짓이기 때문에 코드가 수행되지 않는다.
System.out.println("해당 조건식은 모두 참입니다.");
}
if( A > 8 || B > 7) { // B > 7이 참이기 때문에 || 연산결과가 참이므로 코드가 수행된다.
System.out.println("조건식 두개중 하나만 참이어도 수행됩니다.");
}
if( !(A > 8)) { // A > 8이 거짓이므로 !연산을 수행하면 참이된다. 그러므로 코드가 수행된다.
System.out.println("해당 조건식이 false일때 !연산을 수행하면 참이된다.");
}
|
결과)
1
2
3
|
조건식 두개중 하나만 참이어도 수행됩니다.
해당 조건식이 false일때 !연산을 수행하면 참이된다.
|