본문 바로가기

JAVA

[Snack Java] 8. 자바의 조건문 (IF문)

 

이전 글 보기

 

2022.06.05 - [JAVA] - [Snack Java] 7. 자바의 콘솔 입력(Console Input)

 

[Snack Java] 7. 자바의 콘솔 입력(Console Input)

이전 글 보기 2022.06.04 - [JAVA] - [Snack Java] 6. 자바의 콘솔 출력(Console Out) [Snack Java] 6. 자바의 콘솔 출력(Console Output) 이전 글 보기 2022.06.02 - [JAVA] - [Snack Java] 5. 자바의 연산자(Ope..

yunjuniverse.tistory.com

 

 

지금까지 연산자, 콘솔 입출력, 문자열, 타입 등 자바 문법의 기초에 대해 알아보았습니다. 영어 공부로치면 동사, 명사와 같은 품사의 개념이 뭔지 배운 것과 같습니다. 이제는 배운 문장의 구조를 만드는 방법입니다. 프로그래밍 언어는 논리구조(규칙)을 만들기 위해 존재합니다. 따라서 규칙을 정하는 방법을 알아야 합니다.

 

대부분의 프로그래밍 언어는 조건 규칙, 반복 규칙 등을 조합하여 규칙을 제어합니다. 이것을 프로그래밍 언어에서는 '제어문(Control Statement)'라 합니다. 그리고 이 제어문에는 대표적으로 '조건문(Conditional statement)'과 '반복문(iteration statement)'이번에는 그 중 조건 규칙을 세우기 위한 조건문 중 하나인 if문에 대해 알아봅니다.

 

if문은 if라는 키워드 하나만 쓰는 경우도 있지만 여러 조건을 거는 경우 else if와 else를 쓰기도 합니다. 

IF문 

public class Ifs {
    public static void main(String[] args) {
        int age = 30; // 나이를 담는 age 변수를 선언합니다.
        if(age>20) {
        System.out.println("술담배 구입이 가능합니다."); //age가 20 이상일 경우 해당 메시지를 출력합니다.
        System.out.printf("사용자의 나이는 %s살입니다.", age); 
        }
    }
}

/*
출력값: 

술담배 구입이 가능합니다.
사용자의 나이는 30살입니다.

*/

 

if 문의 기본 형태입니다. if문의 소괄호 안에는 boolean 값으로 평가되는 조건식을 넣어주고, 중괄호 안의 블록에는 조건식이 참일 때 실행하고자하는 코드를 적어줍니다. 

 

실행문은 중괄호로 묶여있기 때문에 여러 실행문을 담을 수 있습니다. (다만 각 실행문의 마지막에는 세미콜론이 필요합니다) 만약, 실행문이 하나라면 중괄호는 생략 가능합니다.

 

public class Ifs {
    public static void main(String[] args) {
        int age = 30;
        if(age>20) System.out.println("술담배 구입이 가능합니다."); // 중괄호가 없습니다.
    }
}

 

IF ELSE문 

public class Ifs {
    public static void main(String[] args) {
        int age = 14;
        if(age>20) {
            System.out.println("술담배 구입이 가능합니다.");
            System.out.printf("사용자의 나이는 %d살입니다.", age);
        } else { //20살이 넘지 않았다면
            System.out.println("술담배 구입을 할 수 없습니다."); // 이 메시지를 출력합니다.
            System.out.printf("성인이 되기까지 %d살 남았습니다.", 20-age); // 나이에 맞는 메시지를 출력해줍니다
        }
    }
}

/* 
출력값:

술담배 구입을 할 수 없습니다.
성인이 되기까지 6살 남았습니다.

*/

 

IF ELSE문의 형태입니다. 만약 if 조건문이 false일 경우 다른 실행문을 실행하도록 하는 조건문입니다. else의 실행문도 실행 코드가 하나일 경우 마찬가지로 중괄호를 생략 가능합니다.

 

IF ... ELSE IF ... ELSE문 

public class Ifs {
    public static void main(String[] args) {
        int age = -3; //나이가 음수인 경우
        if(age>20) {
            System.out.println("술담배 구입이 가능합니다.");
            System.out.printf("사용자의 나이는 %d살입니다.", age);
        } else if(age<0){ //나이가 음수로 입력된 경우
            System.out.println("잘못된 입력입니다. 나이는 0살부터 시작합니다");
        } else {
            System.out.println("술담배 구입을 할 수 없습니다.");
            System.out.printf("성인이 되기까지 %d살 남았습니다.", 20-age);
        }
    }
}

// 출력값: 잘못된 입력입니다. 나이는 0살부터 시작합니다

 

2개 이상의 조건을 쓰고 싶을 때 else if 키워드를 사용합니다. 위 예제에서는 사용자의 나이가 20 초과인 경우, 음수인 경우, 이외의 경우로 나누었습니다. (조금 이상한 코드가 됐지만, else if 키워드 안에 있는 실행문을 출력하기 위해 일부로 음수인 경우를 else if에 넣었습니다.)

 

이런 식으로 IF문을 여러번 사용해 조건을 분기할 수 있습니다. IF문은 마치 이진트리처럼 아닌 경우를 다시 분기를 나눌 수 있습니다.

 

 

이렇게 조건문의 대표주자인 if문의 종류에 대해 알아보았습니다.

 

다음 시리즈에서는 또다른 조건문인 switch문에 대해 알아보겠습니다.