- 이번에는 숫자 관련 연산자입니다.
- 복합대입연산자는 기존 변수값에 사칙연산자를 처리해서 다시 대입하는 연산자입니다.
- 증감연산자는 기존 변수값에 1씩 증가하거나 감소하게 하는 연산자입니다.
- 이번 강좌에서는 복합대입연산자와 증감연산자를 정리해 보겠습니다.
1. 복합대입연산자
- 복합대입연산자란 산술연산자와 대입연산자를 합쳐서 만든 연산자입니다.
- 그래서 좌변과 우변의 자료형이 전부 숫자관련 자료형이어야 합니다.
- 예시로 보자면 더하기 연산자인 + 와 대입연산자인 = 를 합쳐서 만든 것입니다.
- 그래서 += 로 사용하는 것을 말합니다. 이때 연산자 사이는 공백 없이 작성해야 합니다.
- 더하기 대입연산자는 좌변의 변수에 우변의 값을 추가해서 대입합니다.
- 기본적인 개념을 먼저 보고 가겠습니다.
a = a + 10;
a += 10;
- 첫번째 줄에 적은 코드는 a라는 변수에 10을 더한 후 다시 대입하라는 것이죠?
- 우리가 수학시간에는 이렇게 작성했습니다.
- 하지만 a를 두 번 쓰기 때문에 코드가 길어집니다.
- 이런 코드를 줄이기 위해 복합대입연산자가 나왔다고 보면 됩니다.
- 그래서 컴퓨터언어에는 보통 두 번째 줄과 같이 작성을 합니다.
- 기존 a변수에 10이라는 값을 추가 대입해라 이런 뜻입니다.
1) 복합대입연산자 정리
연산자 | 설명 | 예시 |
+= | 좌변의 변수에 우변의 값을 추가 대입 | num += 10; |
-= | 좌변의 변수에 우변의 값을 빼서 대입 | num -= 10; |
*= | 좌변의 변수에 우변의 값을 곱해서 대입 | num *= 10; |
/= | 좌변의 변수에 우변의 값을 나눠서 대입 | num /= 10; |
%= | 좌변의 변수에 우변의 값을 나눈 후 나머지를 대입 | num %= 10; |
** 실제로는 비트연산자와 대입연산자를 합친 복합대입연산자도 있습니다. 그것은 추후 비트연산자와 함께 보겠습니다.
- 복합대입연산자는 대입이 들어가기 때문에 기존 변수가 변경되는 겁니다.
- 대입연산자는 우선순위가 제일 낮은 연산자입니다. 모든 연산이 끝난 후 마지막 결과값으로 변수에 대입합니다.
- 그래서 복합대입연산자도 마찬가지로 우선순위가 제일 낮습니다.
- 이제 예제를 실습해 보겠습니다.
- 패키지(ch10_operator)과 클래스(Ex04_CompoundAssignmentOperator.java)를 추가해 주세요.
- 기초적 작업을 모르는 분은 아래 주소를 클릭하고 보고 오세요.
https://ossam5.tistory.com/613
## 복합대입연산자 실습1 - Ex04_CompoundAssignmentOperator.java
package ch10_operator;
public class Ex04_CompoundAssignmentOperator {
public static void main(String[] args) {
//변수선언
int num = 10;
System.out.println(num); //기존 num : 10
System.out.println(num += 10); //기존 num에 10추가대입 : 20
System.out.println(num -= 10); //기존 num에 10빼서대입 : 10
System.out.println(num *= 10); //기존 num에 10곱해서대입 : 100
System.out.println(num /= 10); //기존 num에 10나눠서대입 : 10
System.out.println(num %= 3); //기존 num에 3나눠서 나머지를 대입 : 1
}
}
- 코드에 대한 설명은 주석으로 처리를 했습니다.
- 주의할 것은 없기 때문에 주석을 잘 정리해 주세요.
## 복합대입연산자 결과1 - Ex04_CompoundAssignmentOperator.java
- 결과 역시 위의 주석에 적은 대로 그대로 나오는 것을 확인할 수 있습니다.
2) 연결대입연산자
- 다른 복합대입연산자는 모두 숫자 관련으로 처리가 됩니다.
- 하지만 산술연산자 중 더하기 연산자는 연결연산자도 됩니다.
- 이 내용을 잘 모르는 분은 아래 주소 가서 확인을 하고 오세요.
https://ossam5.tistory.com/625
- 그래서 자료형이 String이라면 계속 연결해서 대입해 줍니다.
## 복합대입연산자 실습2 - Ex04_CompoundAssignmentOperator2.java
package ch10_operator;
public class Ex04_CompoundAssignmentOperator2 {
public static void main(String[] args) {
//변수 선언
String text = "대한";
System.out.println(text); //대한
text += "민국";
System.out.println(text); //대한민국
text += "만세";
System.out.println(text); //대한민국만세
}
}
- 기존 text값에는 대한을 대입했습니다.
- 그 후 민국, 만세를 추가대입한 거죠?
- 문자열끼리를 사칙연산자 불가능하기 때문에 문자열로 연결이 됩니다.
- 그래서 기존 변수 값이 변경돼서 대한, 대한민구, 대한민국만세로 들어가게 됩니다.
## 복합대입연산자 결과2 - Ex04_CompoundAssignmentOperator2.java
- 결과가 설명대로 도출되는 것이 확인됩니다.
2. 증감연산자
- 증감연산자는 1씩 증가 혹은 감소하는 연산자입니다.
- 실제로는 a +=1; 과 a -= 1; 과 같은 개념입니다.
- 하지만 코딩 시 반복문 등에서 워낙 1씩 증가하거나 감소하는 경우가 많아 따로 나온 연산자입니다.
- 증감연산자는 일항(단항) 연산자로 항이 1개입니다.
1) 증감연산자 정리
연산자 | 설명 | 예시 |
++변수 | 해당 줄에서 변수값을 1씩 바로 증가 | ++num |
변수++ | 다음 줄에서 변수값을 1씩 증가 | num++ |
--변수 | 해당 줄에서 변수값을 1씩 바로 감소 | --num |
변수-- | 다음 줄에서 변수값을 1씩 감소 | num-- |
** ++은 실무에서 뿔뿔이라고 보통 읽고, --는 마마라고 읽습니다. 몰라도 크게 관계는 없습니다.
- 위에서 보면 연산자를 앞에 쓰는 경우와 뒤에 쓰는 경우가 좀 다른 것이 확인됩니다.
- 하지만 아직은 2가지 경우를 언제 나눠 쓰는지 설명하기엔 배운 내용이 부족합니다.
- 추후 강의에서 설명이 나온다면 다시 언급하겠습니다.
- 지금은 ++은 1씩 증가, --는 1씩 감소한다고 기억하면 되겠습니다.
## 증감연산자 실습1 - Ex05_IncrementDecrementOperator.java
package ch10_operator;
public class Ex05_IncrementDecrementOperator {
public static void main(String[] args) {
int num = 10;
System.out.println(num++); //10 - 다음줄부터 1이 증가
System.out.println(num); //11 - 다음 줄이어서 1이 증가된 상태
System.out.println(++num); //12 - 해당줄에서 바로 1이 증가
System.out.println(num--); //12 - 다음줄부터 1이 감소
System.out.println(num); //11 - 다음 줄이어서 1이 감소된 상태
System.out.println(--num); //10 - 해당줄에서 바로 1이 감소
}
}
- 코드에 주석으로 설명을 달아놨으니 읽어보면 됩니다.
## 증감연산자 결과1 - Ex05_IncrementDecrementOperator.java
- 위의 코드 주석 결과대로 잘 나오는 것이 확인됩니다.
'컴퓨터언어 > JAVA(자바)' 카테고리의 다른 글
[JAVA강좌] 13강 삼항연산자(조건처리연산자) (0) | 2024.01.10 |
---|---|
[JAVA강좌] 12강 관계연산자와 논리연산자 (0) | 2024.01.10 |
[JAVA강좌] 10강 연산자 개념과 산술연산자 (0) | 2024.01.05 |
[JAVA강좌] 9강 자료 형변환 (0) | 2024.01.04 |
[JAVA강좌] 8강 상수와 리터럴 (0) | 2024.01.04 |