조건문은 조건식에 따라 다른 실행문을 실행하기 위해 사용합니다.

 

종류로는 if문 세 가지와 switch문이 있습니다.

1. 단순 if문

2. if-else문

3. if-else if-else문

4. switch-case문

 

if문은 boolean값, switch문은 변수의 값에 따라 결정됩니다.

1. 단순 if문

if의 조건식에는 boolean 타입 변수로, 

 

true 또는 false 값을 산출할 수 있는 연산식이 올 수 있습니다.

 

조건식이 true이면 블록을 실행하고, 

 

조건식이 false이면 블록을 실행하지 않습니다.

 

조건식이 true일 때 실행문이 1개라면 중괄호{ }를 생략할 수 있지만

추천하지는 않습니다.

2. if-else문

 

 

 

기본적인 사용 방법은 if문과 동일합니다.

 

if문과 else 블록을 함께 사용하면 조건식의 결과에 따라

 

실행 블록을 선택할 수 있습니다.

 

실행 흐름

조건식이 true이면 실행문 A -> 실행문 C 순으로 실행합니다.

 

조건식이 false이면 실행문 B -> 실행문 C 순으로 실행합니다.

 

 

 

3. if-else else-if문

 

else if문을 사용하면 하나의 조건을 만족하면

 

다른 조건은 더 이상 비교하지 않습니다.

 

하지만 if문을 여러 번 작성하면

 

조건과 실행문이 서로 독립적이라서 원하는 값을 없습니다.

 

실행 흐름

조건식 1이 true이면 실행문 A -> 실행문 D 순으로 실행합니다.

 

조건식 1이 false이면 조건식 2로 이동합니다.

 

조건식 2가 true이면 실행문 B -> 실행문 D 순으로 실행합니다.

 

조건식 2가 false이면 실행문 C -> 실행문 D 순으로 실행합니다.

 

 

 

아래는 기본적인 예시입니다.

public class IfTest {
    public static void main(String[] args) {
        int a = 10;
    	int b = 0;
        int c = 0;
        int d = 0;
        
        // if-else문
        System.out.println("if-else문 출력");
    	if(a > 3) { // true
            b = 2;
            System.out.println(b); // 2 출력
        } else {
            b = 1;
            System.out.println(b); // 출력 X
        }
        // 2 출력
        
        // if- if문
       System.out.println("if문 + if-else문 출력");
        if(a > 3) {
            c = 2;
            System.out.println(c); // 2 출력
        } 
        if(a > 6) {
            c = 1;
            System.out.println(c); // 1 출력
        } else {
            c = 3;
            System.out.println(c); // 출력 X
        }
        // 2, 1 출력
        // else if문을 사용하지 않고
        // if문만 반복적으로 사용하는 건 if문을 여러 개 작성하는 것과 똑같습니다.
        
    	// if-else else-if문
        System.out.println("if-else else-if문 출력");
        if(a > 3) {
            d = 2;
            System.out.println(d); // 2 출력
        } 
        else if(a > 6) {
            d = 1;
            System.out.println(d); // 출력 X
        } else {
            d = 3;
            System.out.println(d); // 출력 X
        }
        // 2 출력
    }
}

4. switch-case문

 

if문과 다르게 변수의 값에 따라 실행문이 다르게 실행됩니다.

 

if문은 boolean 값만 사용할 수 있기 때문에 경우의 수가 많을 경우 else if문을 대량으로 추가해야 합니다.

 

하지만 switch문은 변수의 값에 따라 실행문이 결정되기 때문에 더 간결합니다.

 

if문과 다르게 break문을 반드시 작성해야 합니다.

 

break문을 작성을 안 하면 모든 실행문이 실행됩니다.

 

각 조건을 case로 표시하고 마지막은 default로 작성합니다.

 

 

 

 

 

switch-case문의 예시입니다.

public class SwitchCaseTest {
    public static void main(String[] args) {
        int a = 1;
        int b = 3;
        int age = 0;
        String name = "홍길동";

        // switch-case문
        switch(a) { // a = 1
            case 1 : 
                age = 1;
                System.out.println(age); 
                // break;
            case 2 : 
                age = 2;
                System.out.println(age); 
                // break;
            case 3 : 
                age = 3;
                System.out.println(age); 
                // break;
            default : 
                age = 5;
                System.out.println(age); 
                // break;
        }
        // 1, 2, 3, 5 모두 출력(break문이 없어서 case 1: 부터 모두 출력됩니다.)
		   
        // switch-case문
        switch(b) { // b = 3
            case 1 : 
                age = 1;
                System.out.println(age);
                break;
            case 2 : 
                age = 2;
                System.out.println(age);
                break;
            case 3 : 
                age = 3;
                System.out.println(age);
                break;
            default : 
                age = 5;
                System.out.println(age);
                break;
        }
        // 3 출력(break문이 있어서 case 3: 에서 출력하고 멈춥니다.)
    }
    
    // switch-case문(문자열)
        switch(name) { // name = 홍길동
            case "홍길동2" : 
                System.out.println("나는 홍길동2다.");
                break;
            case "홍길동3" : 
                 System.out.println("나는 홍길동3다.");
                break;
            case "홍길동4" : 
                 System.out.println("나는 홍길동4다.");
                break;
            default : 
                System.out.println("나는 홍길동이다.");
                break;
        }
        // 나는 홍길동이다. 출력(해당되는 case가 없어서 default: 에서 출력됩니다.)
    }
}

 

++

추가적으로 if문, switch문과 조건 연산자는 서로 교환이 가능합니다.

public class ConditionalTest {
	public static void main(String[] args) {
		int a = 5;
		int b = 3;
		int c = 0;
		int d = 0;
		int age = 0;
		
		// if - 조건 연산자
		// if문
		if(a > b) {
		    c = 2;
		} else {
		    c = 1;
		}
		System.out.println(c); // 2
		
		// 조건 연산자
		d = (a > b) ? 2 : 1;
		System.out.println(d); // 2
		
		// if - switch
		// if문
		if(a == 1) {
		    age = 1;
		} else if(a == 2) {
		    age = 2;
		} else if(a == 3) {
		    age = 3;
		} else {
		    age = 5;
		}
		
		System.out.println(age); // 5
		
		// switch-case문
		switch(b) {
		    case 1 : 
		      age = 1;
		      break;
		    case 2 : 
		      age = 2;
		      break;
		    case 3 : 
		      age = 3;
		      break;
		    default : 
		      age = 5;
		      break;
		}
		
		System.out.println(age); // 3
        
        
    }
}

 

 

 

 

마지막 정리

1. 조건 연산자는 조건식의 결과가 2개 중 하나이고, 한 줄에 코드를 짤 때 사용하는 것이 좋습니다.

2. if문은 조건식의 결과가 boolean값인 경우에 사용하는 것이 좋습니다.

3. switch-case문은 조건식의 결과가 정수 또는 문자열 값인 경우에 사용하는 것이 좋습니다.

'백엔드 > JAVA' 카테고리의 다른 글

배열  (0) 2021.08.21
반복문(while문, for문)  (0) 2021.08.21
[JAVA] 연산자  (0) 2021.03.07
[JAVA] 자료형, 데이터 타입  (0) 2021.03.07
[JAVA] 변수의 종류와 사용법  (0) 2021.03.07