지난 포스팅을 통해 비교 연산자의 결과(true, false)와 그것을 이용한 조건문에 대해 알아보았습니다.
비교 연산자
2020/11/22 - [하고 싶은 거 하는 개발/Java 프로그래밍 기초] - [JAVA] 자바(JAVA) 비교 연산자에 대하여(+equals, boolean 타입) |
조건문
2021/01/21 - [하고 싶은 거 하는 개발/Java 프로그래밍 기초] - [JAVA] 자바(JAVA) 조건문에 대하여(if 문) 2021/01/25 - [하고 싶은 거 하는 개발/Java 프로그래밍 기초] - [JAVA] 자바(JAVA) 조건문에 대하여(switch 문) |
이번 포스팅은 조건문에 이어 true, false 값을 이용하는 논리 연산자에 대하여 알아보겠습니다.
연산자 | 의미 |
A && B | A와 B 모두 TRUE |
A || B | A나 B 둘 중 하나가 TRUE |
!A | NOT A |
&&
&& 연산자는 좌항과 우항의 값이 모두 true인 경우 연산의 결과로 true가 리턴됩니다. 그 외의 경우에는 false가 리턴됩니다.
예시와 함께 자세히 알아보겠습니다.
if( true && true ) {
System.out.println( "true && true" );
}
if( true && false ) {
System.out.println("true && false");
}
if( false && true ) {
System.out.println("false && true");
}
if( false && false ) {
System.out.println("false && false");
}
위 코드의 결과로 무엇이 출력될까요?
3가지 경우 중 가장 첫 번째 경우인 "true && true"만 출력되었습니다.
&& 연산자 좌항과 우항이 모두 true인 경우에만 true가 리턴된다고 말씀드렸습니다.
실사례는 보통 아래와 같이 사용합니다.
int 몸무게 = 72;
int 키 = 175;
int 몸무게제한 = 50;
int 키제한 = 150;
if( 몸무게 > 몸무게제한 && 키 > 키제한 ) {
System.out.println( "놀이기구 탑승 가능");
} else {
System.out.println( "놀이기구 탑승 불가");
}
놀이공원에 가면 키와 몸무게에 제한이 있는 놀이기구가 있습니다.
이런 놀이기구의 경우 키와 몸무게 모두 제한을 넘겨야 이용할 수 있습니다.
몸무게가 72kg, 키가 175cm인 사람이 몸무게 제한 50kg 초과, 키 제한 150cm 초과인 놀이기구를 이용하려고 합니다.
몸무게 > 몸무게 제한 연산의 결과로 true가 리턴되고 또한 키 > 키 제한 연산의 결과로 true가 리턴됩니다.
&& 연산자의 좌항과 우항 모두 true이므로 아래와 같이 "놀이기구 탑승 가능"이 출력됩니다.
동일한 놀이기구를 몸무게 52kg, 키 145cm인 사람이 이용하려고 할 경우는 어떨까요?
int 몸무게 = 52;
int 키 = 145;
int 몸무게제한 = 50;
int 키제한 = 150;
if( 몸무게 > 몸무게제한 && 키 > 키제한 ) {
System.out.println( "놀이기구 탑승 가능");
} else {
System.out.println( "놀이기구 탑승 불가");
}
몸무게 > 몸무게제한 연산의 결과로 true가 리턴되지만 키 > 키 제한 연산의 결과는 false가 리턴됩니다.
&& 연산자 좌항은 true지만 우항이 false이므로 "놀이기구 탑승 불가"가 출력됩니다.
&& 연산자를 이해하셨다면 || 연사자 또한 쉽게 이해하실 수 있습니다.
||
|| 연산자는 좌항이나 우항 중 하나라도 true이면 연산의 결과로 true가 리턴됩니다.
if( true || true ) {
System.out.println( "true && true" );
}
if( true || false ) {
System.out.println("true && false");
}
if( false || true ) {
System.out.println("false && true");
}
if( false || false ) {
System.out.println("false && false");
}
위 코드의 결과를 쉽게 떠올리실 수 있으실 겁니다.
|| 연산자의 좌항과 우항이 모두 false인 4번째 경우를 제외한 3가지 경우가 모두 출력되었습니다.
놀이기구의 예를 들어보면,
int 몸무게 = 52;
int 키 = 145;
int 몸무게제한 = 50;
int 키제한 = 150;
if( 몸무게 > 몸무게제한 || 키 > 키제한 ) {
System.out.println( "놀이기구 탑승 가능");
} else {
System.out.println( "놀이기구 탑승 불가");
}
몸무게 52kg, 키 145cm인 사람이 놀이기구를 타려고 할 때 키가 키 제한보다 작지만 몸무게가 몸무게 제한보다 커
놀이기구를 탈 수 있습니다.
!
! 연산자는 부정의 의미로 !true로 쓰일 경우 not true, 즉 false가 되고,
!false로 쓰일 경우 not fals, 즉 true가 됩니다.
예시와 함께 알아보겠습니다.
if ( !true ) {
System.out.println("true");
} else {
System.out.println("false");
}
위 코드의 결과는 무엇일까요?
if 뒤의 괄호에 !true, 즉 false가 존재하므로 else 뒤의 중괄호로 들어가 "false"가 출력되었습니다.
!false의 경우도 동일합니다.
if ( !false ) {
System.out.println("true");
} else {
System.out.println("false");
}
'하고 싶은 거 하는 개발 > Java 프로그래밍 기초' 카테고리의 다른 글
[JAVA] 자바(JAVA) 배열에 대하여(array) (0) | 2021.02.15 |
---|---|
[JAVA] 자바(JAVA) 반복문에 대하여(for, while) (0) | 2021.02.10 |
[JAVA] 자바(JAVA) 조건문에 대하여(switch 문) (0) | 2021.01.25 |
[JAVA] 자바(JAVA) 조건문에 대하여(if 문) (0) | 2021.01.21 |
[JAVA] 자바(JAVA) 비교 연산자에 대하여(+equals, boolean 타입) (0) | 2020.11.22 |