본문 바로가기
Language/Java

공부내용 정리 Java :: 기초 IV

by Cs.Woo 2021. 6. 14.

1. 논리 연산자

 논리연산자(Conditional Operator)는 boolean타입의 데이터와 같이 사용하여 코드를 조금 더 간결하게 만들 수 있는 기능의 연산자이다. 논리연산자는 조건문과 같이 사용될 수 있다.

 자바에서의 논리연산자는 and와 or가 있다. 다음과 같다.

 

1-1) and / &&

 and(&&)는 그리고 라는 의미로서 좌항과 우항의 값이 모두 참(true)일 때 참이 된다. 

 

public static void main(String[] args) {
        if (true && true) {
            System.out.println(1);
        }
 
        if (true && false) {
            System.out.println(2);
        }
 
        if (false && true) {
            System.out.println(3);
        }
 
        if (false && false) {
            System.out.println(4);
        }
 
    }

 

상기와 같을 때, 실행될 수 있는 명령은 1을 출력하는 첫번째 조건이다. 즉, 논리연사자 &&을 기준으로 양쪽에 있는 값이 같아야지만 참(true)가 되어 조건절이 참으로 만족이되고 코드가 실행이 될 수 있는 것이다.

 

1-2) or / ||

 or( || )는 또는 이라는 의미로서 좌항 혹은 우항의 값중 하나만 참(true)이어도  참이 된다. 

 

public static void main(String[] args) {
        if (true || true) {
            System.out.println(1);
        }
        if (true || false) {
            System.out.println(2);
        }
        if (false || true) {
            System.out.println(3);
        }
        if (false || false) {
            System.out.println(4);
        }
 
    }

 

 상기와 같을 때, 실행될 수 있는 명령은 1, 2.,3 . 즉, 논리연사자 ||을 기준으로 두 값중 하나 만 참(true)이 되어도 조건절이 참으로 만족이되고 코드가 실행되는 것이다.

 조건문에서 또는을 사용할때의 주의점은 다음과 같다.

 

public static void main(String[] args) {
        String id = args[0];
        String password = args[1];
        if ((id.equals("아이디1") || id.equals("아이디2") || id.equals("아이디3"))
                && password.equals("비밀번호")) {
            System.out.println("right");
        } else {
            System.out.println("wrong");
        }
    }

 

 상기와 같이 if의 조건절에 여러가지 조건으로 또는 을 사용하였다면 다음과 같이 괄호 ( ( ) )로 한번 더 묶어서 처리를 해주어야 된다는 것이다

 

if (  id.equals("아이디1") || id.equals("아이디2") || id.equals("아이디3"  )

 

상기의 붉은색 괄호와 같이 조건을 다시 한번 괄호로 묶어서 사용하여야 한다는 점에 주의하여야 한다. 또는 이라는 논리연사자는 저 세개의 조건 중하나만 참이 되더라도 전체의 절이 참이되어 if의 조건을 만족해주는 기능을 갖고있다.

 

 

1-3) ! (not)

 자바에서 !는 부정(not)의 의미로 쓰인다. boolean의 값을 역전시키는 역할을 한다. 가령 true의 앞에 !를 붙이면 false가 되고 false의 앞에 !을 붙이면 true가 된다.

 

    public static void main(String[] args) {
        if (!true) {
            System.out.println(1);
        }
        if (!false) {
            System.out.println(2);
        }
 
    }

 

 상기와 같다면, 실행되는 결과는 2이다. false의 앞에 부정 논리연산자인 ! 을 붙였기 때문에 첫번째 조건은 false가 되고 두번째 조건은 true가 되어 2가 실행이 되는 것이다.