Minwoo Dev.

[Java] 논리 연산자 본문

Java

[Java] 논리 연산자

itisminu 2023. 11. 1. 12:25
728x90
반응형
SMALL

이번 게시물에서는 논리 연산자에 대하여 설명하겠다.

 

논리 연산자는 true, false로 나타내는 boolean 자료형이다.

학생들의 출결을 true, false로 나타낸다고 해보자.

 

boolean amy = true; // 출석
boolean smith = false; // 미출석
boolean jay = true; // 출석

위와 같이 논리 연산자는 true, false 로 값이 나눠진다. 

 

 

먼저, and 연산에 대하여 알아보겠다.

  • or 연산
System.out.println(amy || smith || jay); // true, false, true 이므로 결과는 true

or 연산은 하나라도 true 이면 결과값이 true로 나오는 연산이다.

세 개 이상의 값이 있다면 헷갈릴 수 있다. 이럴 때 간단하면서도 유용한 방법이 있다.

컴퓨터는 0 이외의 수는 true 로, 0은 false로 인식한다.

or 연산은 "합연산"이다.

 

위 식을 보고 계산한다면, 1 + 0 + 1 = 2 즉, 0 이 아닌 수이므로 결과값은 true 이다.

 

 

  • and 연산
System.out.println(amy && smith && jay); // true, false, true 이므로 결과는 false

and 연산은 모두 true이면 결과값은 true이다.

이것도 세 개 이상의 값이 있다면 헷갈릴 수 있다.

and 연산은 "곱연산" 이기 때문에 위와 같이 계산한다면

 

1 x 0 x 1 = 0, 결과값은 false이다.

 

그리고 이 논리 연산자를 비교 연산자와 함께 사용하곤 한다.

아래 예제를 보자.

public class test {
    public static void main(String[] args) {
        // And 연산
        System.out.println((5 > 3) && (3 > 1)); // 5는 3보다 크고, 3은 1보다 크다 (true)
        System.out.println((5 > 3) && (3 < 1)); // 5는 3보다 크고, 3은 1보다 작다 (false)

        // Or 연산
        System.out.println((5 > 3) || (3 > 1)); // 5는 3보다 크거나, 3은 1보다 크다 (true)
        System.out.println((5 > 3) || (3 < 1)); // 5는 3보다 크거나, 3은 1보다 작다 (true)
        System.out.println((5 < 3) || (3 < 1)); // 5는 3보다 작거나, 3은 1보다 작다 (false)
    }
}

위 예제처럼 괄호 안의 두 연산식을 논리 연산자로 계산할 수 있다.

 

 

결과

 

 

System.out.println(1 < 3 < 5); // 불가능한 코드

하지만 위 코드처럼 작성한다면 오류가 발생한다.

꼭 논리 연산자를 이용하여 적어야한다.

 

 

마지막으로 not 연산자에 대하여 알아보겠다.

  • not 연산자
System.out.println(!true); // false
System.out.println(!false); // true
System.out.println(!(5==5)); // false
System.out.println(!(5==3)); // true

not 연산자는 위와 같이 !로 표현한다. 

예상한 값과 똑같이 나온다는 것을 알 수 있다.

 

 

 

출처 - 나도코딩 자바 강의 https://www.youtube.com/watch?v=NQq0dOoEPUM&t=5915s

728x90
반응형
LIST

'Java' 카테고리의 다른 글

[Java] 퀴즈 2. 어린이의 키에 따른 탑승  (0) 2023.11.01
[Java] 삼항 연산자  (0) 2023.11.01
[Java] 비교 연산자  (0) 2023.10.31
[Java] 대입 연산자  (0) 2023.10.31
[Java] 산술 연산자  (0) 2023.10.31