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 |