본문 바로가기

자바 기초

연산자(Operator)

1. 부호 연산자

연산식 설명
+ 피연산자 피연산자의 부호 유지
- 피연산자 피연산자의 부호 변경
// 부호 표현
int num1 = +100;
int num2 = -200;

// 부호 변경
int num3 = -100
int result1 = +num3
int result2 = -num3

 

 

2. 증감연산자, 가감연산자

연산식 설명
++ 피연산자 다른 연산 전에 피연산자 값을 1 증가 ( i = i + 1)
-- 피연산자 다른 연산 전에 피연산자 값을 1 감소 ( i = i - 1)
피연산자 ++ 다른 연산 후에 피연산자 값을 1 증가
피연산자 -- 다른 연산 후에 피연산자 값을 1 증가
int num1 = 1;
int num2 = 1;

int result1 = ++num1 + 10;
int result2 = num2++ + 10;

// result1 에는 12가 저장되고
// result2 에는 11이 저장됩니다.

 

 

 

3. 산술연산자

연산식 설명
피연산자 + 피연산자 덧셈
피연산자 - 피연산자 뺄셈
피연산자 * 피연산자 곱셈
피연산자 / 피연산자 나눗셈 연산
피연산자 % 피연산자 나눗셈 후 나머지를 구함
int num1 = 10;
int num2 = 2;

int result1 = num1 + num2; 
// result 는 12가 저장됨

int result2 = num1 - num2; 
// result 는 8가 저장됨

int result3 = num1 * num2; 
// result 는 20가 저장됨

int result4 = num1 / num2; 
// result 는 5가 저장됨

int result5 = num1 % num2; 
// result 는 0가 저장됨

 

 

4. 문자열 연결 연산자

연산식 설명
문자열 + 문자열 문자열을 연결함.
String str1 = "Welcome to";
String str2 = "Java World";

String str3 = str1 + " " + str2;
// str3 에는 Welcome to Java World 가 저장됨.

 

 

5. 비교연산자

연산식 설명
피연산자 == 피연산자 피연산자의 값이 같은지 비교(같으면 true, 다르면 false)
피연산자 != 피연산자 피연산자의 값이 다른지 비교(다르면 true, 같으면 false)
피연산자 > 피연산자 앞에 피연산자가 큰지 비교(크면 true, 작으면 false)
피연산자 >= 피연산자 앞에 피연산자가 크거나 같은지 비교
(크거나 같으면 true, 작으면 false)
피연산자 < 피연산자 앞에 피연산자가 작은지 비교(작으면 true, 크면 false)
피연산자 <= 피연산자 앞에 피연산자가 작거나 같은지 비교
(작거나 같으면 true, 크면 false)
int num1 = 10;
int num2 = 10;


boolean result1 = (num1 == num2); // true
boolean result2 = (num1 != num2); // false
boolean result3 = (num1 >= num2); // true

 

 

 

6. 논리연산자

 

1) AND 연산자 (&& 또는 &)

연산식 설명
true && 또는 & true true (피연산자가 모두 true 일때 만 true)
false && 또는 & true false
true && 또는 & false false
false && 또는 & false false

 

2) OR 연산자 ( || 또는 |)

연산식 설명
true || 또는 | true true (피연산자 중 하나만 true 이면 true)
false || 또는 | true true 
true || 또는 | false true 
false || 또는 | false false

 

3) XOR 연산자 ( ^ )

연산식 설명
true ^ true false (피연산자가 true 와 false 로 서로 다를 때 true)
false ^ true true 
true ^ false true 
false ^ false false

 

4) NOT 연산자 ( ! )

연산식 설명
! true false (피연산자의 논리 값을 바꿈)
! false true
int num1 = 10;
int num2 = 10;


boolean result1 = ((15 > num1) && (5 < num1));     // true
boolean result2 = ((5 < num2) || (6 == num2));    // true
boolean result3 = ((num1 == 10) ^ (num1 == 10));   // false
boolean result4 = !(num1 == 10);   // false

 

 

7. 비트 논리 연산자

비트 논리 연산자 &, |, ^ 연산자는 피연산자가 boolean 타입이면 위의 일반 논리 연산자로 사용되고

피연산자가 정수 타입일 경우에는 비트논리 연산자로 사용됩니다.

 

1) AND 연산자 ( & )

연산식 설명
1 & 1 1 (두 비트가 모두 1 일때 만 1)
1 & 0 0
0 & 1 0
0 & 0 0

 

2) OR 연산자 ( | )

연산식 설명
1 | 1 1 (두 비트 중 하나만 1 이면 1)
1 | 0 1
0 | 1 1
0 | 0 0

 

3) XOR 연산자 ( ^ )

연산식 설명
1 ^ 1 0(두 비트가 1 과 0 으로 서로 다를 때 1)
1 ^ 0 1
0 ^ 1 1
0 ^ 0 0

 

4) NOT 연산자 ( ! )

연산식 설명
~ 1 0 (보수)
~ 0 1

 

 

8. 비트 이동 연산자

연산식 설명
a << b 정수 a의 각 비트를 b만큼 왼쪽으로 이동(빈자리는 0으로 채움)
a >> b 정수 a의 각 비트를 b만큼 오른쪽으로 이동(빈자리는 a의 최상위 부호 비트로 채움)
a >>> b 정수 a의 각 비트를 b만큼 오른쪽으로 이동(빈자리는 0으로 채움)

 

 

 

9. 대입연산자

연산식 설명
변수 = 피연산자 피연산자 값을 변수에 저장.
변수 += 피연산자 변수의 값과 피연산자의 값을 더한 후 다시 변수에 저장 (변수 = 변수 + 피연산자)
변수 -= 피연산자 변수의 값에서 피연산자의 값을 뺀후 후 다시 변수에 저장 (변수 = 변수 - 피연산자)
변수 *= 피연산자 변수의 값과 피연산자의 값을 곱한 후 다시 변수에 저장 (변수 = 변수 * 피연산자)
변수 /= 피연산자 변수의 값을 피연산자의 값으로 나눈 후 다시 변수에 저장 (변수 = 변수 / 피연산자)
변수 %= 피연산자 변수의 값을 피연산자의 값으로 나누어 남은 나머지 값을 변수에 저장
(변수 = 변수 % 피연산자)
변수 &= 피연산자 변수의 값을 피연산자와 & 연산 후 결과를 변수에 저장 (변수 = 변수 & 피연산자)
변수 |= 피연산자 변수의 값을 피연산자와 | 연산 후 결과를 변수에 저장 (변수 = 변수 | 피연산자)
변수 ^= 피연산자 변수의 값을 피연산자와 ^ 연산 후 결과를 변수에 저장 (변수 = 변수 ^ 피연산자)
변수 <<= 피연산자 변수의 값을 피연산자와 << 연산 후 결과를 변수에 저장 (변수 = 변수 << 피연산자)
변수 >>= 피연산자 변수의 값을 피연산자와 >> 연산 후 결과를 변수에 저장 (변수 = 변수 >> 피연산자)
변수 >>>= 피연산자 변수의 값을 피연산자와 >>> 연산 후 결과를 변수에 저장
(변수 = 변수 >>> 피연산자)
int num1 = 5;
int num2 = 3;


num1 += num2  // num1 = num1 + num2 와 같음 num1 은 8 이 저장됨.
num1 -= num2  // num1 = num1 - num2 와 같음 num1 은 2 가 저장됨.
num1 *= num2  // num1 = num1 * num2 와 같음 num1 은 15 가 저장됨.
num1 /= num2  // num1 = num1 / num2 와 같음 num1 은 1 이 저장됨.
num1 %= num2  // num1 = num1 % num2 와 같음 num1 은 2 가 저장됨.

 

 

10. 삼항 연산자

조건식 ? 값 또는 연산식 : 값 또는 연산식
피연산자1 ? 피연산자2 : 피연산자3
    조건식 또는 피연산자1이 true 일때 실행   조건식 또는 피연산자1이 false 일때 실행

// 삼항 연산자 
int score = 95;

char grade = (score > 90) ? 'A' : 'B';

// score 가 90 보다 크면 grade 에 'A'를 저장하고 
// score 가 90 보다 작으면 grade 에 'B'를 저장합니다. 

 

위와 같이 간단한 삼항 연산자는 if문 코드를 줄일 수 있어 추천하지만

개인적 의견으로 아래와 같이 삼항 연산자의 중첩 사용은 코드 해석에 불필요한 시간이 소비될 수 있어 비추천합니다.

 

// 삼항 연산자 중첩사용
int score = 40;

char grade = (score > 90) ? 'A' : (score > 80) ? 'B' : (score > 70) ? 'C' : (score > 60) ? 'D' : (score > 50) ? 'E' : 'F';

'자바 기초' 카테고리의 다른 글

조건문(if, switch)  (2) 2020.03.26
메소드(Method)  (0) 2020.03.17
실수형(Floating point type) 변수의 특징  (0) 2020.03.13
정수형(Integer Type) 변수의 특징  (0) 2020.02.17
데이터형(Data Type)과 입력값(Literal)  (1) 2020.02.11