본문 바로가기

Java

[JAVA / 자바] 연산자


1. 연산자: 연산을 수행하는 기호

산술연산자 +, -, *, /, %, <<, >> 사칙연산, 나머지 연산
비교연산자 >, <, >=, <=, ==, != 크고 작음, 같고 다름 비교
boolean반환
논리연산자 && || ! & | ^ ~  
대입연산자 = 우변 값을 좌변에 저장 (오->왼)
기타 intanceof 형변환 연산자, 삼항연산자

2. 연산자 결합규칙

1) 산술 > 비교 > 논리> 대입(=)
2) 단항 > 이항 > 삼항
3) 단항연산자, 대입연산자 제외 모든 연산 진행방향은 오->왼

3. 증감연산자 (++, --)

증가연산자(++) 피연산자 값 +1
감소연산자(--) 피연산자 값 -1

*증감연산자는 일반 산술변환에 의한 자동 형변환 x
전위형: 값 참조 전 증가 ( j = ++i;)
후위형: 값 참조 후 증가 (j=i++;)

 


4. 비교 연산자 (>=, <=는 띄어쓰기 or 순서바꿀시시 오류남!)
1) 대소비교연산자

> 좌변이 클 시 true
>= 좌변이 크거나 같을 시 true
< 우변이 클 시 true
<= dn변이 크거나 같을 시 true

2) 등가비교연산자

== 좌항과 우항의 값이 같을 시 true
!= 좌항과 우항의 값이 같지 않을 시 true



5. 논리연산자 ( &&, ||) ==> 비교연산자를 논리로 (and, or) 연결 

- and 연산자: && (Ampersand)
좌항과 우항의 값 모두 true 시 true반환
- or연산자: || (Pipeline)
좌항과 우항 중 하나라도 true일 시 true 반환
1) i는 a보다 크고 b보다 작다: a < i && i < b
2) i는 a이상 b 이하이다: a<= i && i <=b
3) i는 2의 배수 또는 3의 배수이다 : i%2==0 || i%3==0
4) i는 2 또는 3의 배수이지만, 6의 배수는 아니다 : ( i%2==0 || i%3==0 ) && ( i%6 !=0 )
5) char ch는 '0'~'9' 이다: '0' < = ch && < = '9'
6) 문자 ch 는 소문자 
'a' <= ch && ch <= 'z' (**피연산자가 char타입이므로 int로 자동형변환되어 계산)
7) 문자 ch 는 대문자
'A' <= ch && ch <= 'Z'  (**피연산자가 char타입이므로 int로 자동형변환되어 계산)

 


6. 논리부정연산자 ( !)

- 피연산자의 boolean 값을 반대로 바꿈 (true <-> false)

boolean home = true;
        home = !home;
        System.out.println(play); //false

 

 

 


7. 조건연산자 (삼항연산자)

조건식 ? 참일 때 : 거짓일 때

 

 

 

 

 

8. 연산자 우선순위

7. 형변환 연산자

형변환이란: 변수 또는 상수의 타입을 다른 타입으로 변환하는 것

(타입)피연산자

double d = 85.4;

int score = (int)d;

--> int socre = (int)85.4;

-->int score = 85;

 

변환 수식 결과
int->char (char)65 'A'
char->it (int)'A' 65
float->int (int)1.6f 1
int->float (float)10 10.0f

 

 

8. 자동형변환: 컴파일러 자동으로 형변환

- 원래는 대입연산자 양쪽 타입이 일치해야 하나, 생략을해도 컴파일러가 알아서 변환해주는 것

- 자동형변환의 경우에는 , 큰 값을 작은 타입의 변수에 넣을 때에는 자동형변환이 불가

int i = 3.14f; =>에러

컴파일러가 자동 형변환 해주지 않음

int i = (int) 3.14f ;

값손실이 발생할 경우에는 컴파일러가 자동으로 형변환을 해주지 않고, 직접 강제형변환을 명시해야함 

 

 

'Java' 카테고리의 다른 글

[JAVA / 자바] API - Math클래스  (0) 2023.02.20
Properties 객체  (0) 2022.11.10
[JAVA / 자바] 조건문과 반복문  (1) 2022.10.15
[JAVA / 자바] 형변환  (0) 2022.10.15
[JAVA / 자바] 변수  (1) 2022.10.11