본문 바로가기
Java | spring/Java Basic

자바 기초, 연산자 총정리

by 워니 wony 2019. 5. 3.

연산자란?

자료의 가공을 위해 정해진 방식에 따라 계산하고 결과를 얻기 위한 행위를 의미하는 기호의 총칭

 

연산자의 종류와 우선순위

종류

연산자

우선순위

증감 연산자

++, --

1순위

산술 연산자

+ - * / %

2순위

시프트 연산자

>>, <<, >>>

3순위

비교 연산자

>, <, >=, <=, ==,!=

4순위

비트 연산자

&, |, ^, ~

~ 1순위, 나머지는 5순위

논리 연산자

&&, ||, !

! 1순위, 나머지는 6순위

조건(상항)연산자

?, :

7순위

대입 연산자

=, *=, /=, %=, +=, -=

8순위

 

 

산술 연산자

+

더하기

5+2 = 7

-

빼기

5-2 = 3

*

곱하기

5*2=10

/

나누기

5/2=2.5

%

나누기 나머지 구하는

5%2=1

정수 / 정수  ===> 정수  

ex) 5/2 = 2

 

 

 

대입연산자 =

a = 4

a 4 대입하라는 의미, a라는 변수에 4 저장

a == 4

a 4 서로 동일한지 판별하는 문장

 

+=

왼쪽 변수에 더하면서 대입한다.

-=

왼쪽 변수 값에서 빼면서 대입한다.

*=

왼쪽 변수에 곱하면서 대입한다.

/=

왼쪽 변수에 나누면서 대입한다.

%=

왼쪽 변수에 나머지 값을 구하면서 대입한다.

 

 

비교연산자

a > b

 a b보다 크다

a < b

 a b보다 작다

a >= b

 a b보다 같거나 크다

a <= b

 a b보다 같거나 작다

==

연산자들의 값이 같다

!=

피연산자들의 값이 같지 않다.

 

비교 연산자는 그대로 변수나 상수의 값을 비교할 쓰이는 연산자로 결과가 항상 논리값, 다시 말해 boolean형인 true, false

 

비교연산자의 결과의 자료형은?

boolean   true, false

 

==> 선택문의 조건식이나 반복문의 조건식에 일반적으로 사용

 

*** 20 <= age<30이라고 없다!!

이것은 age >=20 && age <30

 

 

 

 

 

증감연산자

++

변수자신에 1 증가하여 다시 변수자신에 대입

--

변수 자신에 1 감소하여 다시 변수자신에 대입

 

증감연산자는 변수명 앞에 올수도 있고 변수명 뒤에 올수도 있습니다. 증감연산자가 단독으로 쓰일때는 앞에 오거나 뒤에 오거나 동일한 결과입니다.

 

그러나 만약 다른연산자와 같이 쓰일때는 의미가 다릅니다.

증감연산자가 변수명앞에 오면 먼저 증감한 다른 연산자를 수행하고 만약 증감 연산자가 변수명 뒤에 오면 나중에 증가하라는 연산자.

 

변수의 앞에 증감 연산자가 있으면 선행 증감, 뒤에 있으면 후행 증감

 

 

a = 10

 

int s = ++a;

++ 먼저 하고 = 해라

a = a+1;

int s =a;

s 값은 11

 

 

int t =a++;

= 하고, ++ 해라

int t = a;

a= a+1;

t 값은 10

 

 

논리연산자

선택문이나 반복문의 조건식에 판별하고자 하는 조건식이 하나가 아니라 두가지 이상일때 사용하는 연산자

 

&&

 논리곱

~이고 and

두가지 조건식이 모두 참인가?

||

논리합

~이거나 or

두가지 조건식중에 하나라도 참인가?

!

부정

not

true false false true 나타낸다

 

if  ( 조건식1 && 조건식2)

if  ( 조건식1 || 조건식2)

 

 

 

 

비트연산자

자바개발자는 사용하지는 않는

2진수의 상태에서 연산가능한 연산자

 

&

비트곱

비트단위의 and

두개 비트 상태가 모두 1일때만 결과 1

|

비트합

비트단위의 or

두개 비트 상태 하나만 1이어도 결과 1

^

비트차

XOR(배타적 or)

두개 비트 상태가 서로 다를 결과 1

 

 

 

0 1 2 3 4 5 6 7 8 9        => 10진수

1 0                                  => 2진수

 

 

x

y

&

|

^

0

0

0

0

0

0

1

0

1

1

1

0

0

1

1

1

1

1

1

0

 

 

 

&, | 원래는 비트 연산자 이지만 조건식에 사용하여 논리연산자로도 사용할 있다.

 

&&, ||, &, | 모두 논리연산자 이지만

 

&&, || short cut operation 수행한다.

 

 

 

if (       조건식 1        &&         조건식 2     )

문장1

조건식 1 false 조건식 2 보지 않는다.

 

if (       조건식 1         &         조건식 2     )

조건식 1 false 이더라도 조건식 2 본다.

 

 

if (       조건식 1        ||         조건식 2     )

문장1

조건식 1 True이면 조건식 2 보지 않는다.

 

if (       조건식 1         |         조건식 2     )

조건식 1 True이더라도 조건식 2 본다.

 

 

 

비트이동연산자(시프트 연산자)

2진수의 상태에서 예측가능한 연산자

자바에서 사용하지는 않음

 

<<

왼쪽으로 비트를 이동시키는 연산자

(<<1 수에 *2 결과와 동일하다.)

>>

오른쪽으로 비트를 이동시키는 연산자
(>>1 수에 /2 결과와 동일하다.)

>>>

무조건 양수를 만든다. 결과값과 상관없이 기존 수보다 아주 커짐

 

 

비트연산자와 시프트 연산자 같은 비트 단위의 연산자는 보안에서 많이 사용된다. 예를 들자면 암호화에서 소개되는 최초의 암호, , 줄리어스 시저가 사용한 암호가 어떤 것인지 간단히 살펴보자. ABC DEF 표현, 오른쪽으로 3칸씩 시프트 . bit 단위의 연산자들은 네트워크 등과 같은 데에서도 사용되지만 보안 부분에서 비중을 많이 차지하면서 활용되고 있다.

 

 

 

삼항연산자(조건식연산자)

 

간단한 if, else 식을 줄로 표현할 있다.

 

조건연산자

?:

제어문의 단일 비교문과 유사

제어문의 단일 비교문과 유사

 

조건식의 결과는 항상 논리값(true/false)이어야 하며, 참값과 거짓 값의 자료형을 동일해야 한다. 하나가 리턴(return)되기 때문

반응형

'Java | spring > Java Basic' 카테고리의 다른 글

자바 기초, 비교문 if문과 switch문  (0) 2019.05.03
자바 기초, 배열 정리  (0) 2019.05.03
자바 기초, 문자열 String  (0) 2019.05.03
자바 기초, 문자형 char  (0) 2019.05.03
자바, 입력 Scanner 출력 Print  (0) 2019.05.03

댓글