내 맘대로 TIL

Dorothy·2022년 11월 8일
0

항해99

목록 보기
2/17

조금씩 JAVA가는 중

📘 혼자 공부하는 자바를 보며

연산자

  • 연산자 : 연산에 사용되는 표시나 기호
  • 피연산자 : 연산자와 함께 연산되는 데이터
  • 연산식 : 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것
  • 대부분의 연산자는 왼쪽에서 오른쪽으로 연산이 되지만, 증감과 대입은 오른쪽에서 왼쪽으로 연산됨
  • 괄호 ()로 감싼 연산이 최우선순위를 갖는다

📝 부호 연산자

연산식설명
+피연산자피연산자의 부호 유지
-피연산자피연산자의 부호 변경

boolean 타입과 char 타입을 제외한 나머지 기본 타입에 사용 가능

int x = -100;
int result1 = +x;
int result2 = -x;
System.out.println(result1);  // -100
System.out.println(result2);  // 100

부호 연산의 결과는 int 타입이므로 int 타입 변수에 저장해야 한다.

byte b = 100;
byte result = -b;  // 컴파일 에러 발생

byte b = 100;
int result = -b;  // -100

📝 증감 연산자

연산식설명
++피연산자다른 연산을 수행하기 전에 피연산자의 값을 1 증가시킴
--피연산자다른 연산을 수행하기 전에 피연산자의 값을 1 감소시킴
피연산자++다른 연산을 수행한 후에 피연산자의 값을 1 증가시킴
피연산자--다른 연산을 수행한 후에 피연산자의 값을 1 감소시킴

boolean 타입을 제외한 모든 기본 타입에 사용 가능

📝 논리 부정 연산자

연산식설명
!피연산자피연산자가 true이면 false값을 산출
피연산자가 false이면 true값을 산출

boolean 타입에만 사용 가능

📝 산술 연산자

연산식설명
피연산자+피연산자덧셈 연산
피연산자-피연산자뺄셈 연산
피연산자*피연산자곱셈 연산
피연산자/피연산자왼쪽 피연산자를 오른쪽 피연산자로 나눗셈 연산
피연산자%피연산자왼쪽 피연산자를 오른쪽 피연산자로 나눈 나머지를 구하는 연산

boolean 타입을 제외한 모든 기본 타입에 사용 가능

byte byte1 = 1;
byte byte2 = 1;
//byte byte3 = byte1 + byte2; 이 경우 모든 피연산자가 int 타입으로 변환되어 연산을 수행하기에
int byte3 = byte1 + byte2  // 이렇게 수정해야 에러 발생하지 않음

📝 문자열 결합 연산자

문자열을 서로 결합하는 연산자
피연산자 중 한쪽이 문자열이면 + 연산자는 문자열 결합 연산자로 사용되어 다른 피연산자를 문자열로 변환하고 서로 결합

String str1 = "JDK" + 6.0;
String str2 = "JDK" + 3 + 3.0;
String str3 = 3 + 3.0 + "JDK";

System.out.println(str1);  // JDK6.0
System.out.println(str2);  // JDK33.0
System.out.println(str3);  // 6.0JDK

📝 비교 연산자

구분연산식설명
동등피연산자1==피연산자2두 피연산자의 값이 같은지를 검사
비교피연산자1!=피연산자2두 피연산자의 값이 다른지를 검사
피연산자1>피연산자2피연산자1이 큰지를 검사
크기피연산자1>=피연산자2피연산자1이 크거나 같은지를 검사
비교피연산자1<피연산자2피연산자1이 작은지를 검사
피연산자1<=피연산자2피연산자1이 작거나 같은지를 검사

boolean 타입을 제외한 모든 기본 타입에 사용 가능

만약 피연산자가 char타입이면 유니코드 값으로 비교 연산을 수행
예를 들어 'A'의 유니코드는 65이고, 'B'의 유니코드는 66이므로 비교 연산자는 65와 66을 비교하게 됨

📝 논리 연산자

구분연산식결과설명
truetruetrue피연산자 모두가
ANDtrue&&falsefalsetrue일 경우에만
(논리곱)false&truefalse연산 결과가 true
falsefalsefalse
truetruetrue피연산자 중
ORtrue||falsetrue하나만 true이면
(논리합)false|truetrue연산 결과는 true
falsefalsefalse
truetruefalse피연산자가 하나는
XORtrue^falsetruetrue이고 다른 하나가
(배타적 논리합)falsetruetruefalse일 경우에만
falsefalsefalse연산 결과가 true
NOT!truefalse피연산자의
(논리 부정)falsetrue논리값을 바꿈

boolean 타입에만 사용 가능

📝 대입 연산자

구분연산식설명
단순 대입 연산자변수=피연산자오른쪽의 피연산자의 값을 왼쪽 변수에 저장
변수+=피연산자변수=변수+피연산자와 동일
변수-=피연산자변수=변수-피연산자와 동일
복합변수*=피연산자변수=변수*피연산자와 동일
대입변수/=피연산자변수=변수/피연산자와 동일
연산자변수%=피연산자변수=변수%피연산자와 동일
변수&=피연산자변수=변수&피연산자와 동일
변수|=피연산자변수=변수|피연산자와 동일
변수^=피연산자변수=변수^피연산자와 동일

모든 연산자들 중에서 가장 낮은 연산 순위를 가지고 있어 제일 마지막에 수행된다.

📝 삼항 연산자

(조건식) ? A : B 를 말하며 조건이 true이면 A를 산출하고, false이면 B를 산출

int score = 85;
        char grade = (score > 90) ? 'A' : ( (score > 80) ? 'B' : 'C');
        System.out.println(score + "점은" + grade + "등급입니다.");
        
        //85점은B등급입니다.

0개의 댓글