미누에요
[Java] 논리 연산자 본문
이번 게시물에서는 논리 연산자에 대하여 설명하겠다.
논리 연산자는 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
'Java' 카테고리의 다른 글
[Java] 퀴즈 2. 어린이의 키에 따른 탑승 (0) | 2023.11.01 |
---|---|
[Java] 삼항 연산자 (0) | 2023.11.01 |
[Java] 비교 연산자 (1) | 2023.10.31 |
[Java] 대입 연산자 (0) | 2023.10.31 |
[Java] 산술 연산자 (0) | 2023.10.31 |