연산자(Operator) : 연산에 사용되는 표시나 기호
피연산자(Operand) : 연산자와 함께 연산되는 데이터
연산식(Expression) : 연산자와 피연산자를 이용하여 연산의 과정을 기술
연산자의 종류
- 산술 : +, -, *, /, % : 사칙연산 및 나머지 계산, 이항
- 부호 : +, - : 음수와 양수의 부호, 단항
- 문자열 : + : 두 문자열을 연결, 이항
- 대입 : =, +=, -=, *=, /=, %= : 오른쪽의 값을 왼쪽의 변수에 대입, 이항
- 증감 : ++, — : 1만큼 증가, 감소, 단항
- 비교 : ==, !=, >, <, >=, <=, instanceof : 값의 비교, 이항
- 논리 : !, &, |, &&, || : 논리 부정, 논리곱, 논리합
- 조건 : (조건식) ? A : B : 조건식에 따라 A 또는 B를 선택, 삼항
연산의 방향과 우선순위
- 단항, 이항, 삼항 연산자 순으로 우선순위 가짐
- 산술, 비교, 논리, 대입 연산자 순으로 우선순위 가짐
- 단항, 부호, 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽
- 복잡한 연산식에는 괄호 ( )를 사용해 우선순위 정함
단항 연산자(++, - -, ~, !), 부호 연산자(+, -), 대입 연산자(=, +=, -=, ...)의 경우 오른쪽에서 왼쪽 방향으로 연산 수행
ex) a = b = c = 5;
- c = 5
- b = c
- a = b
단항 연산자 : 피연산자가 단 하나뿐인 연산자
부호 연산자(+, -) : 양수 및 음수를 표시하는 +, - boolean 타입과 char 타입을 제외한 나머지 기본 타입에 사용 ex) int i = +100, x = -50;
증감 연산자(++, - -) : 변수의 값을 1 증가(++) 또는 1 감소(- -)하는 연산자 boolean 타입 제외한 모든 기본 타입에 사용
++ 피연산자 : 다른 연산을 수행하기 전에 피연산자의 값을 1 증가
int x = 0;
++x; // x = x + 1; 먼저 증가
System.out.print(x); // x = 1;
-- 피연산자 : 다른 연산을 수행하기 전에 피연산자의 값을 1 감소
int y = 10;
--y; // y = y - 1; 먼저 감소
System.out.print(y); // y = 9;
피연산자 ++ : 다른 연산을 수행한 후에 피연산자의 값을 1 증가
int x = 0;
int z = x++; // x = 0
System.out.println(z); // z = 0
System.out.println(x); // 연산 수행한 후 증가 x = x + 1;
피연산자 -- : 다른 연산을 수행한 후에 피연산자의 값을 1 감소
int y = 10;
int z = y--; // z = 10
System.out.println(z); // z = 10
System.out.println(y); // 연산 수행한 후 감소 y = y - 1;
int a = 0;
int b = 10;
int c = 0;
c = a++ + b++; // a = 0, b = 10
// a = 0 + 1, b = 10 + 1
c = ++a + b++; // a = 1 + 1
// b = 11 + 1
c = ++a + ++b; // a = 2 + 1, b = 12 + 1
c = a++ + ++b; // b = 13 + 1
// a = 3 + 1
논리 부정 연산자( ! ) : true를 false, false를 true로 변경, boolean타입만 사용
ex) boolean b = false;
print(!b) → false에서 true로 바꿈
이항 연산자 : 피연산자가 2개인 연산자
산술 연산자(+, -, *, /, %) : boolean타입 제외한 모든 기본 타입에 사용
-
- : 덧셈 연산
-
- : 뺄셈 연산
-
- : 곱셈 연산
- / : 왼쪽 피연산자를 오른쪽 피연산자로 나눗셈 연산 ex) 5 / 2 : 5를 2로 나눔
- % : 왼쪽 피연산자를 오른쪽 피연산자로 나눈 나머지 구하는 연산 ex) 5 % 2 : 5를 2로 나눈 후 나머지를 구함
문자열 결합 연산자(+) : 피연산자 중 한쪽이 문자열이면 + 연산자는 문자열 결합 연산자로 사용
String str1 = "JDK" + 6.0; // JDK6.0
String str2 = str1 + "특징"; // JDK6.0특징
str3 = "JDK" + 3 + 3.0; // "JDK" + "3" + 3.0 -> JDK33.0
str4 = 3 + 3.0 + "JDK"; // 3 + 3.0 + "JDK" -> 6.0JDK
비교 연산자(<, <=, >, >=, ==, !=) : 피연산자의 대소(<, <=, >, >=) 또는 동등(==, !=) 비교하여 boolean 값 true, false 산출
논리 연산자(&&, ||, &, |, ^, !) : boolean 타입만 사용 가능하며, 조건문에서 주로 이용
AND(논리곱) : 피연산자 모두가 true일 경우에만 연산 결과가 true
ex) true && true : true
true && false : false
false && true : false
false && false : false
OR(논리합) : 피연산자 중 하나만 true면 연산 결과는 true
ex) true || true : true
true || false : true
false || true : true
false || false : false
XOR(배타적 논리합) : 피연산자가 하나는 true이고 다른 하나가 false일 경우 연산 결과가 true
ex) true ^ true : false
true ^ false : true
false ^ true : true
false ^ false : false
NOT(논리 부정) : 피연산자의 논리값을 바꿈
ex) !true : false
!false : true
대입 연산자(=, +=, -=, *=, /=, %=) : 오른쪽 피연산자의 값을 왼쪽 피연산자인 변수에 저장
= : 오른쪽의 피연산자의 값을 왼쪽 변수에 저장
+= : 변수 = 변수 + 피연산자 ex) a = a + 10
-= : 변수 = 변수 - 피연산자 ex) b = b - 10
*= : 변수 = 변수 * 피연산자 ex) c = c * 10
/= : 변수 = 변수 / 피연산자 ex) d = d / 10
%= : 변수 = 변수 % 피연산자 ex) e =e % 10
&= : 변수 = 변수 &
|= : 변수 = 변수 |
^= : 변수 = 변수 ^
삼항연산자
3개의 피연산자를 필요로 하는 연산자
? 앞의 조건식에 따라 콜론( : ) 앞뒤의 피연산자 선택됨
int score = 95;
char grade = (score > 90) ? 'A' : 'B'
⇒ score가 90보다 클 경우 'A' , 작을 경우 'B'
디버깅모드
- 원하는 구간부터 더블클릭
- f11 클릭
- f6 누르며 결과 확인
'IT > 자바' 카테고리의 다른 글
자바 정리 - 반복문 (0) | 2021.11.30 |
---|---|
자바 정리 - 연산자, 조건문 (0) | 2021.11.30 |
자바 정리 - 변수, 출력 (0) | 2021.11.30 |
자바 정리 - 기초 (0) | 2021.11.30 |
[이클립스] 단축키 정리 (0) | 2021.11.30 |
댓글