Java에서 논리 연산자(logical operators)는 두 개 이상의 조건을 결합하거나 반전시켜 최종적으로 boolean 값(true/false)을 반환하는 연산자입니다. 대표적인 논리 연산자로는 AND(&&), OR(||), NOT(!)이 있으며, 주로 if 문과 같은 조건문에서 활용됩니다.
아래 예제를 통해 논리 연산자가 실제로 어떻게 동작하는지 살펴보겠습니다.
예제 코드
import java.io.*;
public class Demo {
public static void main(String[] args) {
int a = 45, b = 32, c = 87, d = 1;
System.out.println("첫 번째 변수는 " + a);
System.out.println("두 번째 변수는 = " + b);
System.out.println("세 번째 변수는 = " + c);
if ((a > b) && (b == c)) {
d = a + b + c;
System.out.println("합계는 " + d);
} else {
System.out.println("조건이 충족되지 않았습니다");
}
}
}실행 결과
첫 번째 변수는 45 두 번째 변수는 = 32 세 번째 변수는 = 87 조건이 충족되지 않았습니다
코드 설명
Demo라는 이름의 클래스 안에 main 함수가 정의되어 있으며, 그 안에서 네 개의 정수형 변수(a, b, c, d)가 선언됩니다.
핵심 부분은 if ((a > b) && (b == c)) 구문입니다. 여기서 &&(논리 AND) 연산자는 좌변과 우변의 조건이 모두 참일 때만 전체 표현식을 true로 평가합니다.
a > b→ 45 > 32 → trueb == c→ 32 == 87 → false
true AND false의 결과는 false이므로, if 블록은 실행되지 않고 else 블록의 "조건이 충족되지 않았습니다"라는 메시지가 콘솔에 출력됩니다.
문자열과 논리 연산자
논리 연산자는 문자열 자체에 직접 적용할 수 없으며, 반드시 boolean 값을 반환하는 표현식과 함께 사용해야 합니다. 문자열을 비교할 때는 == 대신 equals() 메서드를 사용하는 것이 올바른 방법입니다.
String str1 = "hello";
String str2 = "world";
if (str1.equals(str2) || str1.length() > 3) {
System.out.println("조건 중 하나 이상이 참입니다");
}위와 같이 equals()나 length() 등이 반환하는 boolean 결과를 논리 연산자로 조합하면, 문자열 관련 복잡한 조건도 손쉽게 처리할 수 있습니다.
정리
&&(AND): 두 조건이 모두 참일 때 true||(OR): 두 조건 중 하나라도 참이면 true!(NOT): 조건의 결과를 반전- 문자열 비교 시에는
equals()사용 후 논리 연산자와 조합