[JAVA] 5. 연산자 종류 및 규칙

Re_Go·2024년 5월 26일
0

JAVA

목록 보기
5/37
post-thumbnail

JAVA에서의 연산자 종류 및 사용 규칙은 해당 문서에서의 자바스크립트의 사용법과 비교 해볼때 타입 선언 및 연산 과정에서의 타입 간 일치 여부를 제외하고 다음의 몇 가지 차이점을 보인다는 점을 빼면 동일하다고 보시면 되겠습니다.

1. 비교 연산자

자바스크립트는 동등 연산자(느슨한 비교 연산자)일치 연산자(엄격한 비교 연산자) 를 따로 나눠 상황 간 비교 연산을 수행하는대에 반해, 자바에서는 '==' 연산자 하나만으로 값과 타입 모두 비교 연산을 수행합니다.

  1. 자바스크립트의 비교 연산자
let a = 5;
let b = '5';
console.log(a == b) // 타입 변환 후 같은 값으로 취급, true를 반환
console.log(a === b) // 타입 변환 없이 타입까지 비교 후 false를 반환
  1. 자바의 비교 연산자
int a = 5;
int b = 5;
char c = '5';
console.log(a == b) // 타입이 같으므로 true를 반환
console.log(a == c) // 타입 변환 없이 타입까지 비교 후 false를 반환

2. 논리 연산자

자바스크립트에서의 논리 연산자는 단락 평가시 truthyfalsy로 취급되는 값들을 이용하여 논리식의 일종으로 사용이 가능하나, 자바에서는 truthy와 falsy의 개념이 존재하지 않으므로 반환 값이 항상 true 혹은 false가 됩니다.

  1. 자바스크립트의 단락 평가
let a = false || 'hello'; // 앞 값이 거짓이나 뒤의 값이 참이므로 'hello'를 반환
let b = true && 'hello'; // 앞 뒤의 값이 모두 차밍므로 뒤의 값인 'hello'를 반환
  1. 자바의 단락 평가
let a = false || true; // 앞 값이 거짓이나 뒤의 값이 참이므로 true를 반환
let b = true && false; // 앞 값은 참이나 뒤의 값이 거짓이므로 false를 반환

3. null 병합 연산자

자바스크립트에서는 ES11부터 도입된 null 병합 연산자선행 값이 null이거나 undefined 일 때 후행의 값을 반환하는 연산자가 존재하지만, 자바에서는 삼항 연산자나 optional, 조건문을 이용해 해당 값에 대한 null의 상태 체킹을 구현할 수 있습니다. 참고로 자바에서는 undefined 키워드가 없으므로 null 키워드만 보시면 되겠습니다.

  1. 자바스크립트의 null 병합 연산자
let a = null ?? 'default'; // 선행 값이 null이므로 후행의 값 "default"을 반환
let b = undefined ?? 'default'; // 선행 값이 undefined이므로 후행의 값 "default"을 반환
let c = 0 ?? 'default'; // 선행 값이 falsy 값이나, null이나 undefined로 취급되지 않으므로 선행 값 0을 출력
  1. 자바의 null 병합 연산자 구현
String a = null;
String b = (a != null) ? a : "default"; // 삼항 연산자를 이용하여 해당 값이 null일 경우 선행 값을, 아닐 경우 후행 값을 출력

Optional<String> optional = Optional.ofNullable(a); // Optional 클래스를 이용해 null값을 포함하는 클래스 객체를 생성 후
String c = optional.orElse("default"); // 해당 optional객체의 값이 null일 경우 orElse 메서드를 이용해"default" 를 반환하게 합니다.
profile
인생은 본인의 삶을 곱씹어보는 R과 타인의 삶을 배워 나아가는 L의 연속이다.

0개의 댓글