티스토리 뷰

 

 

 

 

 

   대입 연산자 ( = )

–  우변의 데이터를 좌변의 변수에 대입(저장)하는 역할, 연산 방향이 우 → 좌로 진행됨.
     ex  )   x=y=3의 경우,  y에 3을 대입하고,  x에 3이 아닌 y를 대입.
               → 결론적으로 x도 y도 3이지만 3이 대입 되는 순서가 다름.
–  모든 연산자 중에서 우선순위가 가장 낮음. 즉, 다른 모든 작업을 수행한 후 대입연산을 수행.

 

 

 

 

 

▶   확장(복합) 대입 연산자 ( +=   -=   *=   /=   %= )

–  대입연산자와 산술연산자를 조합한 연산자.
–  좌변과 우변의 데이터끼리 산술연산을 먼저 수행하고, 그 결과값을 다시 좌변의 변수에 대입(저장)함.
    → a = a+b는 a+=b로 바꿀 수 있고, 'a는 b만큼 증가한다' (누적합)로 풀이하면 쉬움.
–  확장 대입 연산자를 사용하면 형변환 에러가 나지 않음.
  ex   )   char ch = 'A';

             ch = ch+3;        →  에러 O
             ch += 3;            →  에러 X


EX1   )   

int a = 10;	
int b = a;

b += a;		// b = b+a

→   우변의 데이터 10을 좌변의 변수 a에 대입(저장)
→   우변의 변수a의 값을 좌변의 변수b에 대입(저장)
→   b와 a의 덧셈 결과(10+10=20)를 다시 변수b에 저장, 마치 b에 a값을 누적하는 것과 동일함.
→   'b는 a만큼 증가한다' 라는 뜻.
   b = 20

 

b -= a;		// b = b-a;

→   b와 a의 뺄셈 결과(20-10=10)가 다시 변수b에 저장됨.
→   'b는 a만큼 감소한다' 라는 뜻.
   b = 10

 

b *= a;		// b = b*a

→   b와 a의 곱셈 결과(10*10=100)가 다시 변수b에 저장됨.
→   'b는 a만큼 곱해진다' 라는 뜻.
   b = 100

 

b /= a;		// b = b/a

→   b와 a의 나눗셈(몫)결과(100/10=10)가 다시 변수b에 저장됨.
→   'b는 a만큼 나눠진다' 라는 뜻.
   b = 10

 

b %= a;		// b = b%a

→   b와 a의 나눗셈(나머지)결과(100*10=0)가 다시 변수b에 저장됨.
→   'b는 a만큼 나눠진다' 라는 뜻.
   b = 0

 

 

EX2   )

byte b1 = 10;
b1 = b1 + 10;

→   b1과 정수10을 더한 값을 다시 b1에 저장함.

 

b1 = (byte)(b1+10);

→   byte + int = int가 되므로 결과값을 byte타입으로 강제 형변환해야 함.

 

b1 += 10;

→   확장 대입연산자를 사용하여 b1 + 10의 값을 b1에 저장, b1은 정수 10만큼 증가함.

 

 

EX3   )   char타입 변수 값 변화

char ch = 'A';				// 'A' = 65
ch = ch + 3;

→   좌변과 우변의 타입이 맞지 않아 컴파일 에러남.

 

ch = (char)(ch+3);			// 방법1
ch += 3;				// 방법2

→   강제 형변환을 수행하거나, 확장 대입연산자를 사용함.
   char타입 변수 값을 변화시킬 때, 확장 대입연산자를 많이 사용함.

 

 

 

 

 

 

 


 

 

 

 

 

 

 

▶▶   비교 연산자  (  >     >=     <     <=     ==     !=  ) 

–   '관계 연산자' 라고도 함.

–  두 피연산자간의 대소 관계 등을 비교하여 true(참) 또는 false(거짓) 값을 리턴함.
 동등비교 연산자는 수학(=)과 달리 == 형태의 기호 사용
  >= 또는 <= 연산자의 순서 변경 불가능,   => 이렇게 순서 바꾸는거 안됨.
 리턴되는 결과값을 바로 사용하거나 boolean타입 변수에 저장 가능.
 서로 다른 데이터타입끼리의 비교 시, 산술연산과 마찬가지로 동일한 타입으로 일치시킨 후 비교 연산을 수행


EX   )

 

 

EX2   )  char타입끼리 비교

   char타입끼리 비교 시에는 int타입으로 변환 후 비교 (유니코드값으로 비교함)

 

 

EX3   )   float타입과 double타입 비교

✓  double타입과 float타입 비교 시 float타입을 double타입으로 변환 후 비교를 수행하는데,
    실수 근사치 표현에 의해 잘못된 연산 결과가 발생할 수 있음.

 

 

 

 

 


 

 

 

comment


확장대입연산자를 사용하면 왜 컴파일에러가 안날까?
 a = a+1과 a+=1은 같은 표현인데 왜 얘는 나고 쟤는 안나지?
구글링 해봐야겠다 ㅎㅅㅎ

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함