[Java] 연산자

2023. 12. 8. 04:15·Java

1. 대입 연산자( = )

-우측 피연산자를 좌측에 대입
-우선순위 맨 마지막

i+2=i  //error
2=i+1  //error
좌측은 저장공간(변수,배열) 와야함

 

2. 산술 연산자(  +   -   *   /   %   )

1) +
2) -
3) *
4) / : 나누기
5) % : 나누기의 나머지

 

 

3. 비교 연산자 (  >    <    >=    <=   ==   !=  )

>=  :  ≥
<=  :  ≤
==   :  =
!=   :  ≠

-'A'>'B' → 65>66 → false
- a == b : 20 == 20 → true
- a != b : 20 != 20 → false
- primitive type끼리는 == 잘 작동
- reference type의 == 는 불안전

 

+)문자열 비교는 ==대신 equals()를 써주자

밑 예시 보기 클릭


4. 논리 연산자 (  &&  ||  !)

- boolean 타입 끼리 연산 : 결과는 boolean

1) &&  :  and
2) ||  :  or
3)  !  :  not
>예시 보기

 

5. 증감 연산자(  ++  --  ) 

++  :  +1
--  :  -1

1)전위형  :   값 참조 전 증가
j = ++i;
++i 증가후
j = i 대입

2)후위형  :  값 참조 후 증가
j = i++;
j = i 대입 후
++i 증가

3) 단독으로 사용하면 선행과 후행의 차이x

 

 

6. 복합 대입 연산자

대입연산자와 다른 연산자 하나로 축약

i += 2;   ←   i = i+2;
i *= 10+j;   ←   i = i*(10+j);

 

7. 삼항 연산자

조건식? 식1 : 식2;

조건식 참 → 식1 
조건식 거짓 →  식2 수행

 

8. 기타 연산자( 쉬프트 연산자, 비트 논리 연산자, instanceof 연산자)

더보기

쉬프트 연산자

1. A << B
	- 정수 A의 bit를 정수 B 만큼 좌측으로 밀고 빈칸은 0으로 채움

2. A >> B
	- 정수 A의 bit를 정수 B 만큼 우측 으로 밀고 
	1) A가 양의 정수라면 전부 0으로 채우고
	2) A가 음의 정수라면 전부 1로 채움

3. A >>> B
	- 정수 A의 bit를 정수 B 만큼 우측 으로 밀고 
	- A가 음수든 양수든 전부 0으로 채움

비트 논리 연산자

- 0 : false , 1 : true

1. & (and)   
	- 3 & 2

2. | (or)
	- 3 | 2

3. ~ (not)
	- 

 

 

(예시들)

i는 2의배수 또는 3의배수지만 6의배수는 아니다.
→(i%2==0 || i%3==0 && i%6!=0)


ch는 대문자 또는 소문자 이다.
→('a'<=ch && ch<='z')||('A'<=ch && ch<='Z')
//'a'<=ch<='z' 이렇게 안됨 따로 써주기^^~


ch는 소문자가 아니다.
→ch<'a' || ch>'z' 보단
→!('a'<=ch && ch<='z')


-문자열비교 (그냥 차이있을 수 있다~정도만)
String str1 = "ab";
String str2 = "ab";
System.out.println(str1==str2); //true
System.out.println(str1.equls(str2)); //true

String str1 = new String("ab");
String str2 = new String("ab");
System.out.println(str1==str2); //false
System.out.println(str1.equls(str2)); //true

 

▸연산자 우선순위

1항>2항>3항

산술>비교>논리>대입 

대입은 젤 마지막

 

▸연산자 우선순위같다면 어떤 순으로?

------->

진행방향 cf)대입 단항 제외

<-------

대입, 단항

 

ex)

3+2-4

----->

x=y=5

<-----

 

 

'Java' 카테고리의 다른 글

[Java] String 배열  (0) 2023.12.09
[Java] 제어문(조건문, 반복문,분기문)  (0) 2023.12.09
[Java] 타입간 변환방법  (0) 2023.12.08
[Java] OverFlow & UnderFlow  (0) 2023.12.08
[Java] Scanner, Math.round(), Math.random()  (0) 2023.12.08
'Java' 카테고리의 다른 글
  • [Java] String 배열
  • [Java] 제어문(조건문, 반복문,분기문)
  • [Java] 타입간 변환방법
  • [Java] OverFlow & UnderFlow
Naah
Naah
  • Naah
    blueprint
    Naah
  • 전체
    오늘
    어제
    • 분류 전체보기 (106)
      • Java (28)
      • Kotlin (0)
      • TypeScript (7)
      • React (22)
      • Next.js (1)
      • Spring (22)
      • JPA (12)
      • Spring Data JPA (6)
      • Querydsl (1)
      • Error (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • manage
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Naah
[Java] 연산자
상단으로

티스토리툴바