Java(k)

Chapter 03 Operator

레나19 2022. 2. 10. 02:30

1. 연산자(Operator)

연산자 : 연산을 수행하는 기호. such as (+, -, *, /  etc)

1.1 연산자(operator)와 피연산자(operand)

operator : 연산을 수행하는 기호 ( + - * / )

operand : 연산자의 작업 대상 ( variable, constant, literal, equation)

ex )  x + 3   : x, 3 은 operand, +는 operator

 

1.2 식( expression), 대입연산자( = )

expression : 연산자와 피연산자를 조합하여 계산하고자 하는 바를 표현한 것.

evaluation : 식을 계산하여 결과를 얻는 것. 

 

1.3 연산자의 종류 

p87 표 3-1, 자바의 정석

출처 : 코딩도장 (C 언어 코딩 도장: 20.0 비교 연산자와 삼항 연산자 사용하기 (dojang.io))

1.4 연산자의 우선순위와 결합규칙

skip

1.5 산술 변환 ( usual arithmetic conversion )

우측이 타입이 다르다면 형 변환 연산자로 타입을 일치시켜야 한다.

ex) int i =10;  float f = 20.0f  float result = f + (float)i;

두 연산자의 타입 중 더 큰 타입으로 일치시키는데, 작은 타입에서 큰 타입으로 형변환하는 경우, 자동적으로 형변환되므로 연산자를 생략할 수 있다.

float result = f + i ;  (but, 나는 생략을 그다지 좋아하지 않는다)

 

산술변환의 규칙 (p92)

a. 두 연산자의 타입을 같게 일치시킨다 (보다 큰 타입으로 일치)

long + int  -> long + long -> long

float + int -> float + float -> float

double + float -> double + double -> double

b. 피연산자의 타입이 int보다 작은 타입이면 자동으로 int로 변환된다.

byte + short -> int + int -> int

char + short -> int + int -> int

char + char -> int + int -> int

 

2. 단항 연산자

2.1 증감연산자 ++  --

++i  :  값이 참조(실행)되기 전에 증가시킨다.

i++ : 값이 참조(실행)된 후에 증가시킨다.

eclipse 예제. 참조. 

2.2 부호 연산자  + -

 

3. 산술 연산자 + - * / %

3.1 사칙연산자 

3.2 나머지 연산자 

 

4. 비교연산자

4.1 대소비교 연산자 <   >  <=  >=   : 참이면 true 거짓이면 false를 반환한다. 기본형중에서 boolean을 제외한 나머지 자료형에 다 사용할 수 있지만 참조형에 사용할 수 없다. 

4.2 등가비교 연산자  ==   !=  : 참이면 true, 아니면 false

기본형, 참조형 모든 자료형에 사용 가능. 자료형의 경우 값이 같은지 확인 가능.

다만, 참조형의 경우 주소값을 가리킨다(같은 객체인지를 알 수 있다.) 

= 하나만 사용하지 않는 이유? 이미 = 는 대입연산자로 사용하고 있기 때문이다. 

문자열의 비교 // equals(), 두 문자열의 내용이 같으면 true, 다르면 false.

equalsIgnoreCase();

 

5. 논리연산자 

: 두 개의 조건이 결합된 경우를  표현할 때, AND, OR로 연결하여 하나의 식으로 표현할 수 있게 해준다.

5.1 논리연산자 : left side 로, boolean형 또는 boolean형 값을 결과로 하는 조건식만을 허용한다. 

효율적인 연산 : OR 를 사용할 때 left side || right side에서 left side가 이미 true 면 right side를 실행시키지 않는다.

AND를 사용할 때 left side && right side 에서 leftside가 이미 false면 right side를 실행시키지 않는다.

논리부정연산자 : !true 는 false를 반환 !false면 true를 반환

5.2 비트연산자  &  |  ^ ~ <<  >>

: 비트단위로 논리연산

출처 : 자바의 정석 남궁성저자 (p121)

 

출처 : 자바의 정석 남궁성저자 (p122)

5.3 비트 연산자 : | (OR연산자), &(AND연산자),  ^(XOR연산자) : 다르면 1 같으면 0

비트 전환 연산자 ~ : 0은 1로 , 1은 0으로

쉬프트 연산자 <<   >>

 

6. 그 외 연산자.

6.1 조건 연산자 ? :

조건식 ? 식1 : 식2 

조건식이 참일 때 식1 실행, 조건식이 거짓일 때 식2 입력. 

ex)  result = (x>y)? x : y ;

if(x >y)

result =x;

esle

result = y;

 

6.2 대입 연산자  = op=

lvalue and rvalue

 

X=3;

left Value, right Value.

 

복합대입 연산자

 

i +=3;  i = i+3;

i -=3;  i = i-3;

i *= 3;   i= i*3;

i/=3;    i = i/3;

i%=3;  i = i%3;

i<<=3;   i = i<<3;

i>>=3;

i&=3;

i^=3;

i |=3;

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

'Java(k)' 카테고리의 다른 글

Chapter 05. 배열 array  (0) 2022.02.12
Chapter 04. 조건문과 반복문 if, switch, for, while statement  (0) 2022.02.10
Chapter 02. 변수 variable  (0) 2022.02.10