#연산자(operator)
1. 연산자란, 프로그램에서 데이터를 처리하여 결과를 산출하고 수행하는 문자 또는 기호라고 볼 수 있다.
- 연산자(operator) : 어떠한 기능을 수행하는 기호 (ex +, -, *, / 등)
- 피연산자(operand) : 연산자의 작업 대상 (ex 변수, 상수, 수식 등)
2.연산자 종류
-
산술연산자
산술 연산자 | 연산 결과 |
+ | c = a+b (a에 있는 값에서 b를 덧셈 한 후 c 에 대입) |
- | c = a-b (a에 있는 값에서 b를 뺄셈 한 후 c 에 대입) |
* | c = a*b (a에 있는 값에서 b를 곱셈 한 후 c 에 대입) |
/ | c = a/b (a에 있는 값에서 b를 나눗셈 한 후 c 에 대입) |
% | c = a%b (a에 있는 값에서 b에 있는 값을 나눈다음 나머지를 c에 대입) |
int var1 = 10;
int var2 = 3;
int result1 = var1 + var2;
int result2 = var1 - var2;
int result3 = var1 * var2;
int result4 = var1 / var2; // 결과: 3(정수형)
int result5 = var1 % var2;
System.out.println("var1 + var2 = " + result1);
System.out.println("var1 - var2 = " + result2);
System.out.println("var1 * var2 = " + result3);
System.out.println("var1 / var2 = " + result4);
System.out.println("var1 % var2 = " + result5);
* 정수형 / 정수형 - > 정수형
* 실수형 / 정수형, 정수형 / 실수형, 실수형 / 실수형 - > 실수형
-
비교연산자
비교 연산자 | 연산 결과 |
x > y | x가 y보다 크면, true 아니면 false (초과) |
x < y | x가 y보다 작으면, true 아니면 false (미만) |
x >= y | x가 y보다 크거나 같으면, true 아니면 false (이상) |
x <= y | x가 y보다 작거나 같으면, true 아니면 false (이하) |
x == y | x와 y가 같으면, true 아니면 false |
x != y | x와 y가 다르면, true 아니면 false |
int var1 = 10;
int var2 = 3;
boolean result1 = var1 > var2;
boolean result2 = var1 < var2;
boolean result3 = var1 >= var2;
boolean result4 = var1 <= var2;
boolean result5 = var1 == var2;
boolean result6 = var1 != var2;
System.out.println("var1 > var2 = " + result1);
System.out.println("var1 < var2 = " + result2);
System.out.println("var1 >= var2 = " + result3);
System.out.println("var1 <= var2 = " + result4);
System.out.println("var1 == var2 = " + result5);
System.out.println("var1 != var2 = " + result6);
-
증감연산자
증감 연산자 | 연산 결과 |
++ | 1씩 증가시킨다. |
-- | 1씩 감소시킨다. |
int var1 = 10;
int result = 0;
System.out.println("현재 var1의 값 : " + var1);
System.out.println("현재 var1의 값 : " + ++var1); // ++ 를 먼저 계산 후 출력
System.out.println("현재 var1의 값 : " + var1);
result = var1++; // var1 뒤에 ++ 연산자는 대입 먼저 후 연산을 하기 때문에 ;(세미콜론) 이후 더한다.
System.out.println("현재 result의 값 : " + result);
System.out.println("현재 var1의 값 : " + var1);
-
대입연산자
대입 연산자 | 연산 결과 |
+= | 기본변수의 값에 값을 더한다 |
-= | 기본변수의 값에 값을 뺀다 |
*= | 기본변수의 값에 값을 곱한다 |
/= | 기본변수의 값에 값을 나눈다 |
%= | 기본변수의 값에 값을 나머지를 구한다 |
EX>
a = 10;
a += 1; ( a = a + 1; 과 같은 표현)
a에 1을 더한 후 a에 저장해준다. 고로 a = 11이 된다.
예시 1)
int var1 = 100, var2 = 100, var3 = 100, var4 = 100, var5 = 100; // 변수타입이 동일한 경우, 나열가능하다.
var1 += 10; // var1 = var1 + 10;
var2 -= 10; // var1 = var1 - 10;
var3 *= 10; // var1 = var1 * 10;
var4 /= 10; // var1 = var1 / 10;
var5 %= 10; // var1 = var1 % 10;
System.out.println("var1 += 10 : " + var1);
System.out.println("var2 -= 10 : " + var2);
System.out.println("var3 *= 10 : " + var3);
System.out.println("var4 /= 10 : " + var4);
System.out.println("var5 %= 10 : " + var5);
예시 2)
int var6 = 100;
var6 =- 10; // =- 순서가 바꿔 쓸 경우, -10 숫자로 인식하여 대입한다. 산술되지 않음!!(유의)
System.out.println("var6 =- 10 : " + var6);
-
논리연산자( ||, && )
1. 논리연산자란,
피연산자로 비교하는 연산자 양쪽 모두 반드시 boolean 형일 때 사용가능하다.
2. 논리연산자 종류
&&(AND) - 피연산자 양 쪽 모두 true이면 true이다.
|| (OR) - 피연산자 중 어느 한 쪽이 true이면 true이다.
x | y | x || y | x && y |
true | true | true | true |
true | false | true | false |
false | true | true | false |
false | false | false | false |
int var1 = 10;
int var2 = 3;
boolean result1 = var1 > var2;
boolean result2 = var1 <= var2;
boolean result3 = result1 && result2;
boolean result4 = result1 || result2;
boolean result5 = !result1; // !(not 연산 : 부호를 반대로 변경)
System.out.println("result1 : " + result1);
System.out.println("result2 : " + result2);
System.out.println("result3 : " + result3);
System.out.println("result4 : " + result4);
System.out.println("result5 : " + result5);
-
비트연산자
영상 쪽의 일이 아닌 경우, 거의 쓸일이 없기 때문에 부담갖지 않아도 된다. 간단히 알아두는 정도로 마무으리~!
비트 연산자 | 연산 결과 |
& (AND) | 피연산자 양 쪽의 값이 1이면, 1을 결과로 얻고 나머지는 0 |
| (OR) | 피연산자 중 한 쪽의 값이 1이면, 1을 결과로 얻고 나머지는 0 |
~ (NOT) | 피연산자를 이진수로 표현했을 때 0은 1로, 1은 0으로 |
^ (XOR) | 피연산자의 값이 다를 때만 1을 결과로 얻고 나머지는 0 |
<< | 피연산자의 각 자리(2진수로 표현했을 때)를 왼쪽으로 이동 |
>> | 피연산자의 각 자리(2진수로 표현했을 때)를 오른쪽으로 이동 (양수일 때 0, 음수 일때 1로 채워짐) |
>>> | 피연산자의 각 자리(2진수로 표현했을 때)를 오른쪽으로 이동 (왼쪽 비트 무조건 0으로 채워짐) |
!! 기본적인 2진법 계산법 !!
32 16 8 4 2 1
1 1 1 0 0 (28)
1 1 0 0 1 (25)
------------------------------------------------------
&연산 1 1 0 0 0 (24)
|연산 1 1 1 0 1 (29)
int var1 = 28;
int var2 = 25;
int var3 = 5;
System.out.println("var1 & var2 : " + (var1 & var2));
System.out.println("var1 | var2 : " + (var1 | var2));
System.out.println("var1 ^ var2 : " + (var1 ^ var2));
// ^(XOR) : 부호가 서로 다르면 true 같으면 false
System.out.println("var1 << var2 : " + (var1 << var2));
// << : 해당 숫자 만큼 좌측으로 자리수를 이동 ex) 101 >> 2 -> 1
System.out.println("var1 >> var2 : " + (var1 >> var2));
// >> : 해당 숫자 만큼 우측으로 자리수를 이동 ex) 101 << 2 --> 10100
-
삼항연산자
1. 삼항연산자의 표현
변수 = (조건문) ? true 일 때 값 : false 일 때 값
int var1 = 15;
char result = (var1 == 10) ? 'O' : 'X';
System.out.println("결과 : " + result);
#연산자 우선순위
연산자가 두개 이상인 경우 , 우선순위에 의해서 연산 순서가 결정된다.
코드 작성시 자연스럽게 익히게 되는 부분이므로 부담 갖지 않아도 된다.!
우선순위 | 연산자 | 내용 |
1 | () , [] | 괄호 / 대괄호 |
2 | !, ~, ++, -- | 부정 / 증감 연산자 |
3 | *, /, % | 곱셈 / 나눗셈 산술연산자 |
4 | +, - | 덧셈 / 뺄셈 산술연산자 |
5 | <<, >>, >>> | 비트단위의 쉬프트 연산자 |
6 | <, <=, >, >= | 관계 비교연산자 |
7 | ==, != | 비교 |
8 | & | 비트단위의 논리연산자 |
9 | ^ | 논리 |
10 | | | 논리 |
11 | && | 논리곱 연산자 |
12 | || | 논리합 연산자 |
13 | ? : | 조건 연산자 |
14 | =, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, ~= | 대입 / 할당연산자 (★중요 젤 마지막!) |
'🎨 Programming > JAVA' 카테고리의 다른 글
[JAVA] 6. 조건문( if문 / switch문) (0) | 2020.06.13 |
---|---|
[JAVA] 5. Scanner (0) | 2020.06.12 |
[JAVA] 4. 형변환(Casting) (0) | 2020.06.12 |
[JAVA] 2. 변수 (Feat . IntelliJ) (0) | 2020.06.12 |
[JAVA] 1. 기초 개념 및 출력 (Feat . IntelliJ) (0) | 2020.06.11 |