본문 바로가기
컴퓨터 프로그래밍/Java

[Java] 연산자 ( 새로 알게된 내용 정리 )

by 한33 2024. 7. 23.

논리연산자

System.out.println((5 > 3) || (1 > 3));

 

괄호 안에 있는 두 연산자를 논리연산자를 이용해 비교할 수 있다.

 

boolean flag = true;
System.out.println(!flag);

 

선언된 불리언 변수 앞에 ! ( NOT ) 을 붙여서 결과를 바꿀 수 있다.

 

System.out.println(!(5 == 5));

 

괄호 안에 있는 연산 앞에 ! ( NOT ) 을 붙여서 결과를 바꿀 수 있다.

 

대입연산자

아래 두 식의 차이점은 val 선언 시에 b 앞에 -- 가 붙나 뒤에 -- 가 붙나 이다.

int a = 10;
int b = 10;
int val = ++a + b--; // 21

 

위는 val 선언 시에  a 가 11, b 가 10 으로 결과가 21 이 된다.

 

21로 나오고 나서 b 가 1 감소된 9로 바뀐다.

int a = 10;
int b = 10;
int val = ++a + --b; // 20

 

위는 val 선언 시에 a 11, b 9 로 먼저 바뀌고 연산이 들어간다.

 

결과로 20 이 나온다.

 

기타연산자

(1) 형변환 연산자

int intNumber = 93 + (int) 98.8; // 93+98
double doubleNumber = (double) 93 + 98.8;

 

(2) 삼항연산자

int x = 1;
int y = 2;
String s = ( x != y ) ? "오답" : "정답";

 

x 와 y 의 비교연산자를 보고 맞으면 : 왼쪽 값이 변수 s , 아니면 : 오른쪽 값이 변수 s 안에 들어간다.

 

연산자 우선순위

 

비트연산

컴퓨터의 가장 작은 단위인 Bit이기 때문에 연산중에서 Bit 연산이 제일 빠름

 

<<(왼쪽으로 자릿수옮기기), >>(오른쪽으로 자릿수옮기기)

// 비트 연산

// 참고, 3의 이진수값은 11(2) 입니다. 12의 이진수값은 1100(2) 입니다.
// (2) 표기는 이 숫자가 이진수값이라는 표식 입니다.

        System.out.println(3 << 2);
// 3의 이진수값인 11(2) 에서 왼쪽으로 2번 옮겨져서 1100(2) 인 12값이 됩니다.


        System.out.println(3 >> 1);
// 3의 이진수값인 11(2) 에서 오른쪽으로 1번 옮겨져서 1(2) 인 1 값이 됩니다.