[자바 무료 강의] 연산자는 컴퓨터에게 내리는 명령이다 - 코드라떼
Lesson List button
코스자바로 배우는 프로그래밍
hamburger button
강의연산자는 컴퓨터에게 내리는 명령이다최종수정일 2021-09-06
아이콘약 5분

Java의 연산자에 대해 배웁니다. Java에는 다양한 연산자가 있으나 현재 모든 연산자를 알 필요가 없습니다. 기본적인 연산자 몇 개만 알고 있어도 큰 문제가 없습니다.

노트 강의

목차


  1. 기본적인 연산자
  2. 다른 자료형끼리 비교 연산자를 사용해도 되는가?
  3. 논리 연산자 AND, OR, XOR
  4. 연산자 정리표




기본적인 연산자


앞으로 자주 사용할 연산자만 알아도 코딩을 하는데 큰 문제가 없습니다


'+' 연산자

더하기 연산자

더하기 연산자는 연산자 기준 좌측 값과 우측 값을 더하고 그 결과를 반환하는 연산자입니다


'-' 연산자

빼기 연산자

빼기 연산자는 연산자 기준 좌측 값에서 우측 값을 뺀 결과를 반환하는 연산자입니다


'*' 연산자

곱하기 연산자

곱하기 연산자는 연산자 기준 좌측 값과 우측 값을 곱한 결과를 반환하는 연산자입니다


'/' 연산자

나누기 연산자

나누기 연산자는 연산자 기준 좌측 값에서 우측 값을 나눈 결과를 반환하는 연산자입니다


'%' 연산자

나머지 연산자

나머지 연산자는 연산자 기준 좌측 값에서 우측 값을 나눴을 때 나오는 나머지를 반환하는 연산자입니다


'++' 연산자(선행)

++ 선행 연산자

++ 연산자는 조금 특별한 연산자입니다. 기존의 변수에 저장된 값을 1 증가시키는 연산자인데요. 다만 연산자의 위치에 따라 반환 값이 달라 지는 부분이 있습니다.

  1. 해당 변수에 값을 먼저 읽는다
  2. 값을 1을 더한다
  3. 연산된 결과 값을 변수에 저장한다
  4. 변수에 저장된 값을 반환한다

예시코드

int num = 100; System.out.println(++num);
copy

출력

101
copy


'++' 연산자(후행)

++ 후행 연산자

후행 ++ 연산자는 먼저 변수에 저장된 값을 반환하고 변수에 값을 1증가 시키는 연산자입니다

  1. 변수에 저장된 값을 반환한다
  2. 해당 변수에 값을 먼저 읽는다
  3. 값을 1을 더한다
  4. 연산된 결과 값을 변수에 저장한다

예시코드

int num = 100; System.out.println(num++); System.out.println(num);
copy

출력

100 101
copy


'--' 연산자(선행)

image

-- 연산자도 ++ 연산자와 연산의 순서는 동일하나 기존의 변수에 저장된 값을 1 차감시키는 연산자입니다

  1. 해당 변수에 값을 먼저 읽는다
  2. 값을 1을 감한다
  3. 연산된 결과 값을 변수에 저장한다
  4. 변수에 저장된 값을 반환한다

예시코드

int num = 100; System.out.println(--num);
copy

출력

99
copy


'--' 연산자(후행)

image

후행 -- 연산자는 먼저 변수에 저장된 값을 반환하고 변수에 값을 1 차감시키는 연산자입니다.

  1. 변수에 저장된 값을 반환한다
  2. 해당 변수에 값을 먼저 읽는다
  3. 값을 1을 감한다
  4. 연산된 결과 값을 변수에 저장한다

예시코드

int num = 100; System.out.println(num--); System.out.println(num);
copy

출력

100 99
copy


'<' 연산자

image

‘<‘ 연산자는 연산자 기준 좌측 값과 우측 값을 비교했을 때 우측 값이 크면 true 그렇지 않으면 false를 반환하는 연산자입니다.


'<=' 연산자

image

‘<=‘ 연산자는 연산자 기준 좌측 값과 우측 값을 비교 했을 때 우측 값이 좌측 값보다 크거나 같으면 true, 그렇지 않으면 false를 반환하는 연산자입니다.


'>' 연산자

image

‘>’ 연산자는 연산자 기준 좌측 값과 우측 값을 비교했을 때 우측 값이 크면 true, 그렇지 않으면 false를 반환하는 연산자입니다.


'>=' 연산자

image

‘>=‘ 연산자는 연산자 기준 좌측 값과 우측 값을 비교 했을 때 좌측 값이 우측 값보다 크거나 같으면 true, 그렇지 않으면 false를 반환하는 연산자입니다.


'==' 연산자

image

동등 비교 연산자는 연산자 기준 좌측 값과 우측 값을 비교했을 때 좌측 값과 우측 값이 같으면 true, 그렇지 않으면 false를 반환하는 연산자입니다.


'!=' 연산자

image

다음 연산자는 연산자 기준 좌측 값과 우측 값을 비교 했을 때 좌측 값과 우측 값이 같지 않으면 true, 같으면 false를 반환하는 연산자입니다.


'!' 연산자

image

논리 연산자중 부정 연산자는 참과 거짓을 부정한다라는 의미를 가지고 있는데요.

true이면 false로 false이면 true 바꿔주는 연산자라고 생각하시면 쉽습니다
괄호 안의 식은 true라는 값을 반환합니다.

다만 부정연산자를 사용 하면 true의 값을 부정하기 때문에 false가 됩니다
이러한 부정연산자는 true 또는 false의 값이나 true 또는 false를 반환하는 식에서만 사용할 수 있습니다.


'&&' 연산자

image

And 연산자는 연산자 기준 좌측 값이나 우측 값이 둘 다 true이면 true를 반환하고 둘 중 하나라도 false이면 false를 반환하는 연산자입니다.

쉽게 말해 이것도 참이고 저것도 참이면 참이다 둘 중 하나라도 거짓이면 거짓이다 라고 생각하시면 됩니다.


#### '||' 연산자


image

Or 연산자는 연산자 기준 좌측 값 또는 우측 값이 둘 중 하나라도 true이면 true 모두 false이면 false를 반환하는 연산자입니다.

쉽게 말해 둘 중 하나라도 참이면 참이다 둘 다 거짓일 경우에만 거짓이다 라고 생각하시면 됩니다.




다른 자료형끼리 비교 연산자를 사용해도 되는가?


1. 실수형끼리의 비교

오차로 인해 실수형 변수끼리의 비교는 원치 않는 결과를 발생시킬 수 있습니다.

아래와 같은 코드가 있다고 가정합시다.

float x = 1.33F; x = x + 0.1F; boolean isEqual = (1.43F == x);
copy

isEqual에 저장된 변수의 값은 false입니다. 그 이유는

  1. 1.33 실수 리터럴이 x의 변수에 저장되면서 오차가 발생합니다.
  2. 실수 0.1을 더할 때 정확한 1.33이 아닌 값과 더합니다

실제로 x 변수에 저장된 값을 출력해보면 1.43이 아닌 약 1.430001이 되므로 1.43F와 x 변수에 저장된 값은 다릅니다. 그러므로 실수형 끼리의 비교는 부정확합니다.

우연찮게 동일한 경우도 있습니다. 그러나 그 수가 무엇인지는 알 수가 없기에 실수끼리의 비교 연산자를 통한 비교 연산은 조심해야 합니다.

그럼 어떻게 해야 할까요? 방법은 있습니다만 관련 내용은 후반 강의에서 진행합니다.

BigDecimal x = new BigDecimal("1.33"); x = x.add(new BigDecimal(“0.1")); boolean isEqual = 0 == new BigDecimal("1.43").compareTo(x);
copy


2. 정수형와 실수형 비교

정수형과 실수형도 비교는 가능합니다만 가급적 비교를 하지 않는 것을 권장합니다.

일단 세 가지 예시가 있습니다.


case1

float a = 0.7f; a += 0.30000007f; boolean isEqual = a > 1; // false
copy


case2

float a = 0.7f; a += 0.30000009f; boolean isEqual = a > 1; // true
copy


case3

float a = 0.7f; a += 0.3000007f; boolean isEqual = a > 1; // true
copy

일단 1 정수형 리터럴은 비교 연산자를 통해 실수형 리터럴로 암시적 형 변환이 발생합니다. 그리고 실수끼리 비교합니다.

세 가지 코드는 굉장히 유사하나 소수점이 몇째 자리냐의 차이가 있습니다. 이 부분은 “정수와 상수” 에서 설명했던 정밀도와 관련이 있습니다.

case1case2를 비교했을 때 소수 8번째 자릿수의 값이 2 정도 차이가 납니다. 이 결과에 따라 truefalse가 나뉩니다.

case1case3을 비교했을 때 case1은 소수 8번째 자리가 7이고 case3은 소수 7번째 자리가 7입니다. 이 결과에 따라 truefalse가 나뉩니다.

왜 이런 결과가 나올까요?

  1. 저장 시 오차
  2. 정밀도의 문제 (+ 반올림)

이런 복합적인 문제로 인해 우리가 정확히 원하는 결과를 얻을 수 없습니다. 정수와 실수가 큰 차이가 나는 값이 아닌 경우는 가급적 비교를 하지 않는 것을 권장합니다.




논리 연산자 AND, OR, XOR


좌측값 우측값 AND(&&) OR(||) XOR(^)
true true true true false
true false false true true
false true false true true
false false false false false

연산자 기준 좌측값과 우측값이 true 또는 false인 경우 AND, OR, XOR 연산자가 반환하는 값입니다.




연산자 정리표


모든 연산자를 알 필요는 없습니다. 알면 좋으나 강의에서 나온 연산자만 알아도 코딩하는데 큰 문제는 없습니다.

연산자 하는일 예시 우선순위 결합방향
() 연산자 우선순위 결정 4 * (1 + 2) 1 좌 -> 우
[] 배열 접근 인덱스 연산자 array[index] 1 좌 -> 우
. 프로퍼티 접근 연산자 Object.property 1 좌 -> 우
++(변수) 전위 증가 연산자(변수의 값을 1 증가 후 읽기) ++num 2 우 -> 좌
--(변수) 전위 감소 연산자(변수의 값을 1 증가 후 읽기) --num 2 우 -> 좌
(변수)++ 후위 증가 연산자(변수의 값을 읽고 1 증가) num++ 3 우 -> 좌
(변수)-- 후위 감소 연산자(변수의 값을 읽고 1 감소) num-- 3 우 -> 좌
+ + 부호 +3 3 우 -> 좌
- - 부호 -3 3 우 -> 좌
! 기존의 논리 값을 부정 !true 3 우 -> 좌
~ 비트 연산자(NOT, 반전 ~1 3 우 -> 좌
(type 형 변환 연산자 (int)32.3f 3 우 -> 좌
* 곱셈 연산자 4 * 2 4 좌 -> 우
/ 나누기 연산자 10 / 2 4 좌 -> 우
% 나머지 연산자(mod) 9 % 2 4 좌 -> 우
+ 더하기 연산자 1 + 2 5 좌 -> 우
- 빼기 연산자 2 - 1 5 좌 -> 우
<< 비트 시프트 연산자(우로 비트 이동) 1 << 2 6 좌 -> 우
>> 비트 시프트 연산자(좌로 비트 이동) 4 >> 1 6 좌 -> 우
>>> 비트 시프트 제로 연산자(우로 비트 이동, 0으로 채움) 1 >>> 1 6 좌 -> 우
< 비교 연산자(~보다 작다) 1 < 3 7 좌 -> 우
<= 비교 연산자(~보다 작거나 같다) 1 < 3 7 좌 -> 우
> 비교 연산자(~보다 크다) 10 > 2 7 좌 -> 우
>= 비교 연산자(~보다 크거나 같다) 4>= 3 7 좌 -> 우
instanceof 클래스 타입 비교 연산자 obj instanceof Obj.class 7 좌 -> 우
== 비교 연산자(같다) 4 == 4 or obj1 == obj2 8 좌 -> 우
!= 비교 연산자(같지 않다) 1 != 2 8 좌 -> 우
& 비트 연산자(AND) 2 & 1 9 좌 -> 우
^ 비트 연산자(XOR) 2 ^ 1 10 좌 -> 우
| 비트 연산자(OR) 2 | 1 11 좌 -> 우
&& 논리 연산자(AND) true && true 12 좌 -> 우
|| 논리 연산자(OR) true || false 13 좌 -> 우
?: 삼항 연산자 int value = (num >= 3) ? 4 : 1 14 우 -> 좌
= 대입 연산자(오른쪽의 값을 왼쪽으로 저장) int num = 3; 15 우 -> 좌
+= 대입 연산자(왼쪽에 저장된 값과 오른쪽 값을 더하고 왼쪽에 저장) num += 2; 15 우 -> 좌
-= 대입 연산자(왼쪽에 저장된 값과 오른쪽 값을 빼고 왼쪽에 저장) num -= 2; 15 우 -> 좌
*= 대입 연산자(왼쪽에 저장된 값과 오른쪽 값을 곱하고 왼쪽에 저장) num *= 2; 15 우 -> 좌
/= 대입 연산자(왼쪽에 저장된 값에서 오른쪽 값을 나누고 왼쪽에 저장) num /= 2; 15 우 -> 좌
%= 대입 연산자(왼쪽의 값을 오른쪽 값으로 나누었을 떄 나머지의 값을 왼쪽에 저장) num %= 2; 15 우 -> 좌
도전자 질문
아이콘jee0(2021-07-25 16:17 작성됨)
비트연산자 AND 연산자 열에서 $가 아니고 &아닌가요!
아이콘코드라떼(2021-07-26 22:03 작성됨)
헉..달러 표시라니.. 확인했습니다.

감사합니다^^
이용약관|개인정보취급방침
알유티씨클래스|대표, 개인정보보호책임자 : 이병록
이메일 : cs@codelatte.io
사업자등록번호 : 824-06-01921
통신판매업신고 : 2021-성남분당C-0740
주소 : 경기도 성남시 분당구 대왕판교로645번길 12, 9층 24호
파일
파일파일
Root
파일

Output
root$
Lesson List button
코스자바로 배우는 프로그래밍
hamburger button
강의연산자는 컴퓨터에게 내리는 명령이다최종수정일 2021-09-06
아이콘약 5분

Java의 연산자에 대해 배웁니다. Java에는 다양한 연산자가 있으나 현재 모든 연산자를 알 필요가 없습니다. 기본적인 연산자 몇 개만 알고 있어도 큰 문제가 없습니다.

노트 강의

목차


  1. 기본적인 연산자
  2. 다른 자료형끼리 비교 연산자를 사용해도 되는가?
  3. 논리 연산자 AND, OR, XOR
  4. 연산자 정리표




기본적인 연산자


앞으로 자주 사용할 연산자만 알아도 코딩을 하는데 큰 문제가 없습니다


'+' 연산자

더하기 연산자

더하기 연산자는 연산자 기준 좌측 값과 우측 값을 더하고 그 결과를 반환하는 연산자입니다


'-' 연산자

빼기 연산자

빼기 연산자는 연산자 기준 좌측 값에서 우측 값을 뺀 결과를 반환하는 연산자입니다


'*' 연산자

곱하기 연산자

곱하기 연산자는 연산자 기준 좌측 값과 우측 값을 곱한 결과를 반환하는 연산자입니다


'/' 연산자

나누기 연산자

나누기 연산자는 연산자 기준 좌측 값에서 우측 값을 나눈 결과를 반환하는 연산자입니다


'%' 연산자

나머지 연산자

나머지 연산자는 연산자 기준 좌측 값에서 우측 값을 나눴을 때 나오는 나머지를 반환하는 연산자입니다


'++' 연산자(선행)

++ 선행 연산자

++ 연산자는 조금 특별한 연산자입니다. 기존의 변수에 저장된 값을 1 증가시키는 연산자인데요. 다만 연산자의 위치에 따라 반환 값이 달라 지는 부분이 있습니다.

  1. 해당 변수에 값을 먼저 읽는다
  2. 값을 1을 더한다
  3. 연산된 결과 값을 변수에 저장한다
  4. 변수에 저장된 값을 반환한다

예시코드

int num = 100; System.out.println(++num);
copy

출력

101
copy


'++' 연산자(후행)

++ 후행 연산자

후행 ++ 연산자는 먼저 변수에 저장된 값을 반환하고 변수에 값을 1증가 시키는 연산자입니다

  1. 변수에 저장된 값을 반환한다
  2. 해당 변수에 값을 먼저 읽는다
  3. 값을 1을 더한다
  4. 연산된 결과 값을 변수에 저장한다

예시코드

int num = 100; System.out.println(num++); System.out.println(num);
copy

출력

100 101
copy


'--' 연산자(선행)

image

-- 연산자도 ++ 연산자와 연산의 순서는 동일하나 기존의 변수에 저장된 값을 1 차감시키는 연산자입니다

  1. 해당 변수에 값을 먼저 읽는다
  2. 값을 1을 감한다
  3. 연산된 결과 값을 변수에 저장한다
  4. 변수에 저장된 값을 반환한다

예시코드

int num = 100; System.out.println(--num);
copy

출력

99
copy


'--' 연산자(후행)

image

후행 -- 연산자는 먼저 변수에 저장된 값을 반환하고 변수에 값을 1 차감시키는 연산자입니다.

  1. 변수에 저장된 값을 반환한다
  2. 해당 변수에 값을 먼저 읽는다
  3. 값을 1을 감한다
  4. 연산된 결과 값을 변수에 저장한다

예시코드

int num = 100; System.out.println(num--); System.out.println(num);
copy

출력

100 99
copy


'<' 연산자

image

‘<‘ 연산자는 연산자 기준 좌측 값과 우측 값을 비교했을 때 우측 값이 크면 true 그렇지 않으면 false를 반환하는 연산자입니다.


'<=' 연산자

image

‘<=‘ 연산자는 연산자 기준 좌측 값과 우측 값을 비교 했을 때 우측 값이 좌측 값보다 크거나 같으면 true, 그렇지 않으면 false를 반환하는 연산자입니다.


'>' 연산자

image

‘>’ 연산자는 연산자 기준 좌측 값과 우측 값을 비교했을 때 우측 값이 크면 true, 그렇지 않으면 false를 반환하는 연산자입니다.


'>=' 연산자

image

‘>=‘ 연산자는 연산자 기준 좌측 값과 우측 값을 비교 했을 때 좌측 값이 우측 값보다 크거나 같으면 true, 그렇지 않으면 false를 반환하는 연산자입니다.


'==' 연산자

image

동등 비교 연산자는 연산자 기준 좌측 값과 우측 값을 비교했을 때 좌측 값과 우측 값이 같으면 true, 그렇지 않으면 false를 반환하는 연산자입니다.


'!=' 연산자

image

다음 연산자는 연산자 기준 좌측 값과 우측 값을 비교 했을 때 좌측 값과 우측 값이 같지 않으면 true, 같으면 false를 반환하는 연산자입니다.


'!' 연산자

image

논리 연산자중 부정 연산자는 참과 거짓을 부정한다라는 의미를 가지고 있는데요.

true이면 false로 false이면 true 바꿔주는 연산자라고 생각하시면 쉽습니다
괄호 안의 식은 true라는 값을 반환합니다.

다만 부정연산자를 사용 하면 true의 값을 부정하기 때문에 false가 됩니다
이러한 부정연산자는 true 또는 false의 값이나 true 또는 false를 반환하는 식에서만 사용할 수 있습니다.


'&&' 연산자

image

And 연산자는 연산자 기준 좌측 값이나 우측 값이 둘 다 true이면 true를 반환하고 둘 중 하나라도 false이면 false를 반환하는 연산자입니다.

쉽게 말해 이것도 참이고 저것도 참이면 참이다 둘 중 하나라도 거짓이면 거짓이다 라고 생각하시면 됩니다.


#### '||' 연산자


image

Or 연산자는 연산자 기준 좌측 값 또는 우측 값이 둘 중 하나라도 true이면 true 모두 false이면 false를 반환하는 연산자입니다.

쉽게 말해 둘 중 하나라도 참이면 참이다 둘 다 거짓일 경우에만 거짓이다 라고 생각하시면 됩니다.




다른 자료형끼리 비교 연산자를 사용해도 되는가?


1. 실수형끼리의 비교

오차로 인해 실수형 변수끼리의 비교는 원치 않는 결과를 발생시킬 수 있습니다.

아래와 같은 코드가 있다고 가정합시다.

float x = 1.33F; x = x + 0.1F; boolean isEqual = (1.43F == x);
copy

isEqual에 저장된 변수의 값은 false입니다. 그 이유는

  1. 1.33 실수 리터럴이 x의 변수에 저장되면서 오차가 발생합니다.
  2. 실수 0.1을 더할 때 정확한 1.33이 아닌 값과 더합니다

실제로 x 변수에 저장된 값을 출력해보면 1.43이 아닌 약 1.430001이 되므로 1.43F와 x 변수에 저장된 값은 다릅니다. 그러므로 실수형 끼리의 비교는 부정확합니다.

우연찮게 동일한 경우도 있습니다. 그러나 그 수가 무엇인지는 알 수가 없기에 실수끼리의 비교 연산자를 통한 비교 연산은 조심해야 합니다.

그럼 어떻게 해야 할까요? 방법은 있습니다만 관련 내용은 후반 강의에서 진행합니다.

BigDecimal x = new BigDecimal("1.33"); x = x.add(new BigDecimal(“0.1")); boolean isEqual = 0 == new BigDecimal("1.43").compareTo(x);
copy


2. 정수형와 실수형 비교

정수형과 실수형도 비교는 가능합니다만 가급적 비교를 하지 않는 것을 권장합니다.

일단 세 가지 예시가 있습니다.


case1

float a = 0.7f; a += 0.30000007f; boolean isEqual = a > 1; // false
copy


case2

float a = 0.7f; a += 0.30000009f; boolean isEqual = a > 1; // true
copy


case3

float a = 0.7f; a += 0.3000007f; boolean isEqual = a > 1; // true
copy

일단 1 정수형 리터럴은 비교 연산자를 통해 실수형 리터럴로 암시적 형 변환이 발생합니다. 그리고 실수끼리 비교합니다.

세 가지 코드는 굉장히 유사하나 소수점이 몇째 자리냐의 차이가 있습니다. 이 부분은 “정수와 상수” 에서 설명했던 정밀도와 관련이 있습니다.

case1case2를 비교했을 때 소수 8번째 자릿수의 값이 2 정도 차이가 납니다. 이 결과에 따라 truefalse가 나뉩니다.

case1case3을 비교했을 때 case1은 소수 8번째 자리가 7이고 case3은 소수 7번째 자리가 7입니다. 이 결과에 따라 truefalse가 나뉩니다.

왜 이런 결과가 나올까요?

  1. 저장 시 오차
  2. 정밀도의 문제 (+ 반올림)

이런 복합적인 문제로 인해 우리가 정확히 원하는 결과를 얻을 수 없습니다. 정수와 실수가 큰 차이가 나는 값이 아닌 경우는 가급적 비교를 하지 않는 것을 권장합니다.




논리 연산자 AND, OR, XOR


좌측값 우측값 AND(&&) OR(||) XOR(^)
true true true true false
true false false true true
false true false true true
false false false false false

연산자 기준 좌측값과 우측값이 true 또는 false인 경우 AND, OR, XOR 연산자가 반환하는 값입니다.




연산자 정리표


모든 연산자를 알 필요는 없습니다. 알면 좋으나 강의에서 나온 연산자만 알아도 코딩하는데 큰 문제는 없습니다.

연산자 하는일 예시 우선순위 결합방향
() 연산자 우선순위 결정 4 * (1 + 2) 1 좌 -> 우
[] 배열 접근 인덱스 연산자 array[index] 1 좌 -> 우
. 프로퍼티 접근 연산자 Object.property 1 좌 -> 우
++(변수) 전위 증가 연산자(변수의 값을 1 증가 후 읽기) ++num 2 우 -> 좌
--(변수) 전위 감소 연산자(변수의 값을 1 증가 후 읽기) --num 2 우 -> 좌
(변수)++ 후위 증가 연산자(변수의 값을 읽고 1 증가) num++ 3 우 -> 좌
(변수)-- 후위 감소 연산자(변수의 값을 읽고 1 감소) num-- 3 우 -> 좌
+ + 부호 +3 3 우 -> 좌
- - 부호 -3 3 우 -> 좌
! 기존의 논리 값을 부정 !true 3 우 -> 좌
~ 비트 연산자(NOT, 반전 ~1 3 우 -> 좌
(type 형 변환 연산자 (int)32.3f 3 우 -> 좌
* 곱셈 연산자 4 * 2 4 좌 -> 우
/ 나누기 연산자 10 / 2 4 좌 -> 우
% 나머지 연산자(mod) 9 % 2 4 좌 -> 우
+ 더하기 연산자 1 + 2 5 좌 -> 우
- 빼기 연산자 2 - 1 5 좌 -> 우
<< 비트 시프트 연산자(우로 비트 이동) 1 << 2 6 좌 -> 우
>> 비트 시프트 연산자(좌로 비트 이동) 4 >> 1 6 좌 -> 우
>>> 비트 시프트 제로 연산자(우로 비트 이동, 0으로 채움) 1 >>> 1 6 좌 -> 우
< 비교 연산자(~보다 작다) 1 < 3 7 좌 -> 우
<= 비교 연산자(~보다 작거나 같다) 1 < 3 7 좌 -> 우
> 비교 연산자(~보다 크다) 10 > 2 7 좌 -> 우
>= 비교 연산자(~보다 크거나 같다) 4>= 3 7 좌 -> 우
instanceof 클래스 타입 비교 연산자 obj instanceof Obj.class 7 좌 -> 우
== 비교 연산자(같다) 4 == 4 or obj1 == obj2 8 좌 -> 우
!= 비교 연산자(같지 않다) 1 != 2 8 좌 -> 우
& 비트 연산자(AND) 2 & 1 9 좌 -> 우
^ 비트 연산자(XOR) 2 ^ 1 10 좌 -> 우
| 비트 연산자(OR) 2 | 1 11 좌 -> 우
&& 논리 연산자(AND) true && true 12 좌 -> 우
|| 논리 연산자(OR) true || false 13 좌 -> 우
?: 삼항 연산자 int value = (num >= 3) ? 4 : 1 14 우 -> 좌
= 대입 연산자(오른쪽의 값을 왼쪽으로 저장) int num = 3; 15 우 -> 좌
+= 대입 연산자(왼쪽에 저장된 값과 오른쪽 값을 더하고 왼쪽에 저장) num += 2; 15 우 -> 좌
-= 대입 연산자(왼쪽에 저장된 값과 오른쪽 값을 빼고 왼쪽에 저장) num -= 2; 15 우 -> 좌
*= 대입 연산자(왼쪽에 저장된 값과 오른쪽 값을 곱하고 왼쪽에 저장) num *= 2; 15 우 -> 좌
/= 대입 연산자(왼쪽에 저장된 값에서 오른쪽 값을 나누고 왼쪽에 저장) num /= 2; 15 우 -> 좌
%= 대입 연산자(왼쪽의 값을 오른쪽 값으로 나누었을 떄 나머지의 값을 왼쪽에 저장) num %= 2; 15 우 -> 좌
도전자 질문
아이콘jee0(2021-07-25 16:17 작성됨)
비트연산자 AND 연산자 열에서 $가 아니고 &아닌가요!
아이콘코드라떼(2021-07-26 22:03 작성됨)
헉..달러 표시라니.. 확인했습니다.

감사합니다^^
이용약관|개인정보취급방침
알유티씨클래스|대표, 개인정보보호책임자 : 이병록
이메일 : cs@codelatte.io|운영시간 09:00 - 18:00(평일)
사업자등록번호 : 824-06-01921|통신판매업신고 : 2021-성남분당C-0740
주소 : 경기도 성남시 분당구 대왕판교로645번길 12, 9층 24호(경기창조혁신센터)
파일
파일파일
Root
파일

Output
root$