[JAVA] 조건문

참고강의:

김영한의 자바 무료 입문 강의 - 코드로 시작하는 Java 첫걸음 10시간 - YouTube


if문

  • 특정 조건이 참인지 확인하고, 그 조건이 참(true)일 경우 특정 코드 블록을 실행한다.
if (condition) {
// 조건이 참일 때 실행되는 코드
}

 

public class If {
	public static void main(String[] args) { 
        int age = 25;  // 사용자 나이
        if (age >= 18) {
        System.out.println("성인입니다.");
        }
        if (age < 18) {
        System.out.println("미성년자입니다.");
        } 
    }
}

 

실행결과

성인입니다.

 

코드분석

// age = 25
if (age >= 18) {"성인입니다"}
if (25 >= 18) {"성인입니다"} //age의 값은 25이다. 
if (true) {"성인입니다"} //조건이 참으로 판명된다. 
{"성인입니다"} //if문에 있는 코드 블록이 실행된다.

// 이후에 다음 코드가 실행된다.
if (age < 18) 분석
if (age < 18) {"미성년자입니다"}
if (25 < 18) {"미성년자입니다"} //age의 값은 25이다. 
if (false) {"미성년자입니다"} //조건이 거짓으로 판명된다.

 

 

if문은 {} 중괄호 생략이 가능하다.

 

다음과 같이 if 문 다음에 실행할 명령이 하나만 있을 경우에는 {} 중괄호를 생략할 수 있다. else if , else 도 마찬가지이다.

if (true)
	System.out.println("if문에서 실행됨"); 
	System.out.println("if문에서 실행 안됨");

 

else문

  • if문에서 만족하는 조건이 없을 때 실행하는 코드를 제공한다.
if (condition) {
	// 조건이 참일 때 실행되는 코드 
} else {
	// 만족하는 조건이 없을 때 실행되는 코드
}

 

앞에서 진행했던 프로그램을 else문을 사용해서 간략하게 바꿔보자.

public class If2 {
	public static void main(String[] args) { 
		int age = 20;  // 사용자의 나이
        
        if (age >= 18) {
			System.out.println("성인입니다."); //참일 때 실행
        } else {
        	System.out.println("미성년자 입니다."); //만족하는 조건이 없을 때 실행
        }
   }
 }

 

실행결과

성인입니다.

 

else if 문

  • if문의 조건이 거짓일 때 다음 조건을 검사한다. 만약 앞선 if문이 참이라면 else if 문을 실행하지 않는다.
if (condition1) {
	// 조건1이 참일 때 실행되는 코드 
} else if (condition2) {
	// 조건1이 거짓이고, 조건2가 참일 때 실행되는 코드 
} else if (condition3) {
	// 조건2이 거짓이고, 조건3이 참일 때 실행되는 코드 
} else {
	// 모든 조건이 거짓일 때 실행되는 코드
}

 

문제

이 프로그램은 int age 라는 변수를 사용해야 하며, 연령에 따라 다음의 출력을 해야 한다.

  • 7세 이하일 경우: "미취학"
  • 8세 이상 13세 이하일 경우: "초등학생" 
  • 14세 이상 16세 이하일 경우: "중학생" 
  • 17세 이상 19세 이하일 경우: "고등학생" 
  • 20세 이상일 경우: "성인"

else if 문을 사용해서 코드를 작성해보자.

public class If3 {
	public static void main(String[] args) {
    	int age = 8;
        
        if (age =< 7) {
        	System.out.println("미취학");
        } else if (age <=13) {
        	System.out.println("초등학생");
        } else if (age <= 16) {
        	System.out.println("중학생");
        } else if (age <= 19) {
        	System.out.println("고등학생");
        } else {
        	System.out.println("성인");
        }
   }
}

 

switch문

  • 조건식에 해당하는 특정 값으로 실행할 코드를 선택한다.
switch (조건식) {
	case value1:
	// 조건식의 결과 값이 value1일 때 실행되는 코드 
	break;
	case value2:
	// 조건식의 결과 값이 value2일 때 실행되는 코드 
	break;
	default:
	// 조건식의 결과 값이 위의 어떤 값에도 해당하지 않을 때 실행되는 코드
   }

 

  • 조건식의 결과 값이 어떤 case 의 값과 일치하면 해당 case 의 코드를 실행한다.
  • break 문은 현재 실행 중인 코드를 끝내고 switch 문을 빠져나가게 하는 역할을 한다.
  • 만약 break 문이 없으면, 일치하는 case 이후의 모든 case 코드들이 순서대로 실행된다. 
  • default 는 조건식의 결과값이 모든 case 의 값과 일치하지 않을 때 실행된다. if 문의 else 와 같다. 
    default 구문은 선택이다.
  • if , else-if , else 구조와 동일하다.
public class Switch {
	public static void main(String[] args) {
    	int grade = 1;
        int coupon;
        switch (grade) {
        	case 1 :
            coupon = 1000;
            break;
            case 2 :
            coupon = 2000;
            break;
            case 3 :
            coupon = 3000;
            break;
            default
            coupon = 500;
       }
   System.out.println("발급받은 쿠폰 "+coupon);
   }
}

 

실행결과

발급받은 쿠폰 1000

 

if문 vs switch문

  • switch 문의 조건식을 넣는 부분을 잘 보면 x > 10 과 같은 참 거짓의 결과가 나오는 조건이 아니라, 단순히 값만 넣 
    을 수 있다.
  • switch 문은 조건식이 특정 case 와 같은지만 체크할 수 있다. 쉽게 이야기해서 값이 같은지 확인하는 연산만 가능하 
    다. (문자도 가능)
    반면에 if 문은 참 거짓의 결과가 나오는 조건식을 자유롭게 적을 수 있다. 예) x > 10 , x == 10
  • 정리하자면 swtich 문 없이 if 문만 사용해도 된다. 하지만 특정 값에 따라 코드를 실행할 때는 switch 문을 사용하 
    면 if 문 보다 간결한 코드를 작성할 수 있다.

 

삼항 연산자

  • 단순히 참과 거짓에 따라 특정 값을 구하는 경우 삼항 연산자 또는 조건 연산자 라고 불리는 ? : 연산자를 사용한다.
(조건) ? 참_표현식 : 거짓_표현식

 

  • 삼항 연산자는 항이 3개라는 뜻이다. 조건, 참_표현식, 거짓_표현식 이렇게 항이 3개이다. 자바에서 유일하게 항 
    이 3개인 연산자여서 삼항 연산자라 한다. 또는 특정 조건에 따라 결과가 나오기 때문에 조건 연산자라고도 한다. 
  • 조건에 만족하면 참_표현식이 실행되고, 조건에 만족하지 않으면 거짓_표현식이 실행된다. 앞의 if , else 문 
    과 유사하다.
  • if 문 처럼 코드 블럭을 넣을 수 있는 것이 아니라 단순한 표현식만 넣을 수 있다.

 

public class 삼항연산자 {
	public static void main(String[] args) { 
		int age = 18;
        String status = (age >= 18) ? "성인" : "미성년자";
        System.out.println("age = " + age + " status = " + status);
    } 
}

 

실행결과 및 분석

String status = (age >= 18) ? "성인" : "미성년자"; //age=18
String status = (true) ? "성인" : "미성년자"; //조건이 참이므로 참 표현식 부분이 선택된다.
String status = "성인"; //결과

 

'JAVA' 카테고리의 다른 글

[JAVA] 반복문  (2) 2024.01.19
[JAVA] 연산자  (0) 2024.01.16
[JAVA] 변수  (0) 2024.01.15
[JAVA] JAVA란 ?  (0) 2024.01.15