JShell은 Java 9에서 새롭게 도입된 대화형 도구로, Java 언어의 다양한 기능과 방대한 라이브러리를 손쉽게 탐색하고 실험해 볼 수 있도록 도와줍니다.
관계 연산자(Relational Operators)란?
관계 연산자(==, !=, <, >, <=, >=)는 주로 두 값의 비교를 위해 사용됩니다. 이 연산자는 boolean이 아닌 기본(primitive) 데이터 타입의 피연산자를 받아들이며, 그 결과로 boolean 값(true 또는 false)을 반환합니다.
논리 연산자(Logical Operators)란?
JShell은 논리 연산자 역시 지원하며, 이는 표현식(expression) 안에서 사용할 수 있습니다. 논리 연산자는 boolean 타입의 피연산자를 요구하며, 이러한 피연산자로 구성된 표현식은 if, for, while 문 내부에서 boolean 조건을 만드는 데 활용됩니다.
대표적인 논리 연산자는 다음과 같습니다.
- && : 논리 AND (두 조건이 모두 참일 때 true)
- || : 논리 OR (두 조건 중 하나라도 참이면 true)
- ! : 논리 NOT (참과 거짓을 반전)
관계 연산자 구현 예제
아래 두 코드 스니펫을 통해 JShell에서 관계 연산자를 어떻게 사용하는지 확인할 수 있습니다.
예제 1: 단순 비교
jshell> int i = 10; i ==> 10 jshell> i > 10; $2 ==> false jshell> i >= 10; $3 ==> true jshell> i < 10; $4 ==> false jshell> i <= 10; $5 ==> true jshell> i == 10; $6 ==> true jshell> i == 20; $7 ==> false
변수 i가 10일 때, 각 비교 연산의 결과가 예상대로 true 또는 false로 출력되는 것을 볼 수 있습니다.
예제 2: 범위 조건 비교
jshell> int i = 15; i ==> 15 jshell> i >=15 $1 ==> true jshell> i <= 15 $2 ==> true jshell> i >= 15 && i <= 25 $3 ==> true jshell> i == 30; $4 ==> false jshell> i = 30; i ==> 30 jshell> i >= 15 && i <= 25; $5 ==> false
여기서는 관계 연산자와 논리 연산자(&&)를 함께 사용하여 "i가 15 이상 25 이하"라는 범위 조건을 검사합니다. 변수 i의 값을 30으로 변경한 후에는 해당 조건이 더 이상 성립하지 않아 결과가 false로 바뀌는 것을 확인할 수 있습니다.
논리 연산자 구현 예제
아래 코드 스니펫에서는 JShell에서 논리 연산자(&&, ||)를 직접 구현해 볼 수 있습니다.
jshell> true && true $1 ==> true jshell> true && false $2 ==> false jshell> false && true $3 ==> false jshell> false && false $4 ==> false jshell> true || true $5 ==> true jshell> true || false $6 ==> true jshell> false || true $7 ==> true jshell> false || false $8 ==> false
AND(&&) 연산은 두 피연산자가 모두 true일 때만 true를 반환하고, OR(||) 연산은 하나라도 true이면 true를 반환한다는 진리표 규칙을 JShell에서 즉시 확인할 수 있습니다. 이처럼 JShell을 활용하면 별도의 컴파일 과정 없이 연산자의 동작을 빠르게 학습하고 검증할 수 있습니다.