int age = 50;
System.out.println("당신의 나이 : " + age);
// 당신의 나이 : 50
if ( age >= 20 ) { // age >= 20 (은)는 결국 실행되면 true 가 된다.
System.out.println("성년");
}
if ( age < 20 ) { // age < 20 (은)는 결국 실행되면 false 가 된다.
System.out.println("미성년");
}
코드를 살펴보자면 if를 이용해 조건을 설정할 수 있다.
만약 if(조건) 조건이 참이면 { }안에 있는 값을 출력하고 조건이 거짓이면 출력하지 않는다.
그래서 위 코드를 출력하게 되면 '성년'이라는 값이 나올것이다.
if ( 10 > 20 && 1 != 1 && 3 > 2 ) {
// 실행?
}
// 1단계 : 10 > 20 && 1 != 1 && 3 > 2
// 2단계 : false && 1 != 1 && 3 > 2 // 여기서 바로 결론이 난다. 왜냐하면 그리고(&&)는 좌측식과 우측식이 모두 참(true)이어야 참(true)으로 결론이 나는데, 좌측식이 이미 거짓이기 때문에 더 이상의 연산이 필요가 없다고 자바가 판단.
// 3단계 : false
if ( 10 > 20 || 1 != 1 || 3 > 2 ) {
// 실행?
}
// 1단계 : 10 > 20 || 1 != 1 || 3 > 2
// 2단계 : false || 1 != 1 || 3 > 2
// 3단계 : false || false || 3 > 2
// 4단계 : false || false || true
// 5단계 : false || true // 4단계 앞에 있는 false || false 의 연산결과로 false 가 된다.
// 6단계 : true
조건문의 다양한 방법을 이용해 동일한 값을 출력 해볼것이다.
int age = 10;
// v1
if ( age < 10 ) { System.out.println("아동/영유아"); }
if ( age >= 10 && age < 20 ) { System.out.println("10대"); }
if ( age >= 20 ) { System.out.println("20대 이상"); }
v1에서는 if문을 3번 사용해 개별적으로 비교를 시키는 코드이다. age가 10보다 작으면 '아동/영유아를'. age가 10이상이고 20미만이면 '10대'를, age가 20 이상이면 '20대 이상'을 반환하게 되는 코드이다.
// v2
if ( age < 10 ) { System.out.println("아동/영유아"); }
else if ( age >= 10 && age < 20 ) { System.out.println("10대"); }
else if ( age >= 20 ) { System.out.println("20대 이상"); }
v2에서는 if문과 else if 문을 사용하였다. 먼저 if문에서 비교를 한 후, 거짓이면 else if문으로 넘어가게 된다. 그리고 else if문에서 조건이 참이면 그 후에 있는 값은 비교를 안하고 조건식을 빠져나오게 되는 방식이다.
// v2-2
if ( age < 10 ) { System.out.println("아동/영유아"); }
else if ( age < 20 ) { System.out.println("10대");
else if ( age >= 20 ) { System.out.println("20대 이상"); }
여기서는
나이가 10살 보다 크다라는 조건을 빼도 된다. 왜냐하면 10살 보다 작았다면 애초에 이 부분이 실행되지 않는다. 바로 윗줄조건(age < 10)이 참으로 나와서 윗줄만 실행된다.
// v3
if ( age < 10 ) { System.out.println("아동/영유아"); }
else if ( age < 20 ) { System.out.println("10대"); }
else { System.out.println("20대 이상"); }
이 버전이 제일 간결하다고 볼 수 있다. 전체(3가지) 경우의 수 중에서 무조건 정답이 1개 존재한다면, 마지막 if문의 조건식은 생략하여 간결하게 작성한다.