728x90
1. 부호 연산자
부호 연산자는 변수의 부호를 유지하거나 변경하는 역할이다.
연산식 | 설명 | |
+ | 피연산자 | 피연산자의 부호 유지 |
- | 피연산자 | 피연산자의 부호 변경 |
실질적으로 + 연산자는 잘 사용되지 않고, - 연산자는 변수값의 부호를 변경할 때 사용된다.
부호 연산자를 사용할 때 주의할 점은 부호 변경 후의 타입이다. 아래 코드를 살펴보자.
byte b = 100;
byte result = -b; //컴파일 에러
에러가 발생한 이유는 정수 타입(byte, short, int) 연산의 결과는 int 타입이다. 부호를 변경하는 것도 연산이므로 int 타입 변수에 대입해야한다.
byte b = 100;
int result = -b;
2. 증감 연산자
증감 연산자(++, --)는 변수의 값을 1 증가시키거나 1 감소시키는 연산자이다.
연산식 | 설명 | |
++ | 피연산자 | 피연산자의 값을 1 증가시킴 |
-- | 피연산자 | 피연산자의 값을 1 감소시킴 |
피연산자 | ++ | 다른 연산을 수행한 후에 피연산자의 값을 1 증가시킴 |
피연산자 | -- | 다른 연산을 수행한 후에 피연산자의 값을 1 감소시킴 |
변수 단독으로 증감 연산자가 사용될 경우에는 변수의 앞뒤 어디에는 붙어도 결과는 동일하다.
하지만 여러 개의 연산자가 포함되어 있는 연산식에서는 증감 연산자의 위치에 따라 결과가 달라진다.
증감 연산자가 변수 앞에 있으면 우선 변수를 1 증가 또는 1 감소시킨 후에 다른 연산을 수행한다.
증감 연산자가 변수 뒤에 있으면 모든 연산을 끝낸 후에 변수를 1 증가 또는 감소시킨다.
다음은 위의 내용들을 토대로 짠 예시 코드이다.
package ch03.sec01;
public class IncreaseDecreaseOperatorExample {
public static void main(String[] args) {
int x = 10;
int y = 10;
int z;
x++; //피연산자++: 다른 연산을 수행한 후에 피연산자의 값을 1 증가시킴
++x; //++피연산자: 피연산자의 값을 1 증가시킴
System.out.println("x=" + x); //12
System.out.println("----------------------");
y--; //피연산자--: 다른 연산을 수행한 후에 피연산자의 값을 1 감소시킴
--y; //--피연산자: 피연산자의 값을 1 감소시킴
System.out.println("y=" + y); //8
System.out.println("----------------------");
z = x++; //변수 z에 x의 값을 대입한 후 x의 값을 1 증가시킴
System.out.println("x=" + x); //13
System.out.println("z=" + z); //12
System.out.println("----------------------");
z = ++x; //변수 x의 값을 1 증가시킨 후 z에 대입시킴
System.out.println("x=" + x); //14
System.out.println("z=" + z); //14
System.out.println("----------------------");
z = ++x + y++;
//변수 x의 값을 1 증가시킨 후 y와 더한 값을 z에 대입시킨 이후 y의 값을 1 증가시킴
System.out.println("x=" + x); //15
System.out.println("y=" + y); //9
System.out.println("z=" + z); //23
}
}
3. 산술 연산자
산술 연산자는 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 나머지(%)로 총 5개이다.
연산식 | 설명 | ||
피연산자 | + | 피연산자 | 덧셈 연산 |
피연산자 | - | 피연산자 | 뺄셈 연산 |
피연산자 | * | 피연산자 | 곱셈 연산 |
피연산자 | / | 피연산자 | 나눗셈 연산 |
피연산자 | % | 피연산자 | 나눗셈의 나머지를 산출하는 연산 |
다음은 산술 연산의 특징들이다.
- 피연산자가 정수 타입(byte, short, char, int)이면 연산의 결과는 int 타입이다.
- 피연산자가 정수 타입이고 그 중 하나가 long 타입이면 연산의 결과는 long 타입이다.
- 피연산자 중 하나가 실수 타입이면 연산의 결과는 실수 타입이다.
다음은 산술 연산자를 활용한 예제 코드이다.
package ch03.sec02;
public class ArithmeticOperatorExample {
public static void main(String[] args) {
byte v1 = 10;
byte v2 = 4;
int v3 = 5;
long v4 = 10L;
int result1 = v1 + v2; //모든 피연산자는 int 타입으로 자동 변환 후 연산
System.out.println("result1: " + result1); //result1: 14
long result2 = v1 + v2 - v4; //모든 연산자는 long 타입으로 자동 변환 후 연산
System.out.println("result2: " + result2); //result2: 4
// 나누기(/)
double result3 = (double) v1 / v2; //double 타입으로 강제 변환 후 연산
System.out.println("result3: " + result3); //result3: 2.5
// 나머지(%)
int result4 = v1 % v2; //변수 v1을 v2로 나눈값의 나머지를 result4 변수에 저장
System.out.println("result4: " + result4); //result4: 2
}
}
728x90
'Language > Java' 카테고리의 다른 글
[Java] 정확한 계산 하는 방법 (0) | 2022.10.09 |
---|---|
[Java] 오버플로우와 언더플로우 (0) | 2022.10.07 |
[Java] 키보드 입력 데이터를 변수에 저장 (0) | 2022.10.04 |
[Java] 변수 사용 범위와 콘솔로 변수값 출력 (0) | 2022.09.28 |
[Java] 타입 변환 (0) | 2022.09.27 |