본문 바로가기
IT/자바

자바 정리 - 연산자

by 김보리 2021. 11. 30.
728x90
반응형

연산자(Operator) : 연산에 사용되는 표시나 기호

피연산자(Operand) : 연산자와 함께 연산되는 데이터

연산식(Expression) : 연산자와 피연산자를 이용하여 연산의 과정을 기술

연산자의 종류

  • 산술 : +, -, *, /, % : 사칙연산 및 나머지 계산, 이항
  • 부호 : +, - : 음수와 양수의 부호, 단항
  • 문자열 : + : 두 문자열을 연결, 이항
  • 대입 : =, +=, -=, *=, /=, %= : 오른쪽의 값을 왼쪽의 변수에 대입, 이항
  • 증감 : ++, — : 1만큼 증가, 감소, 단항
  • 비교 : ==, !=, >, <, >=, <=, instanceof : 값의 비교, 이항
  • 논리 : !, &, |, &&, || : 논리 부정, 논리곱, 논리합
  • 조건 : (조건식) ? A : B : 조건식에 따라 A 또는 B를 선택, 삼항

연산의 방향과 우선순위

  1. 단항, 이항, 삼항 연산자 순으로 우선순위 가짐
  2. 산술, 비교, 논리, 대입 연산자 순으로 우선순위 가짐
  3. 단항, 부호, 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽
  4. 복잡한 연산식에는 괄호 ( )를 사용해 우선순위 정함

단항 연산자(++, - -, ~, !), 부호 연산자(+, -), 대입 연산자(=, +=, -=, ...)의 경우 오른쪽에서 왼쪽 방향으로 연산 수행

ex) a = b = c = 5;

  1. c = 5
  2. b = c
  3. 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'

디버깅모드

  1. 원하는 구간부터 더블클릭
  2. f11 클릭
  3. f6 누르며 결과 확인
728x90
반응형

'IT > 자바' 카테고리의 다른 글

자바 정리 - 반복문  (0) 2021.11.30
자바 정리 - 연산자, 조건문  (0) 2021.11.30
자바 정리 - 변수, 출력  (0) 2021.11.30
자바 정리 - 기초  (0) 2021.11.30
[이클립스] 단축키 정리  (0) 2021.11.30

댓글