연산자 (Operator)
연산자는 연산을 수행하는 기호를 말한다.
ex) +, -, *, /
연산자(operator): 연산을 수행하는 기호 (+, -…)
피연산자(operand): 연산자의 작업 대상 (변수, 상수, 리터럴, 수식)
연산자의 종류
| 산술연산자 | +, -, *, /, %, <, <, >>, >>> | 사칙 연산과 나머지 연산자 (%) |
| 비교연산자 | >, <, >=, <=, ==, != | 크고 작음 같고 다름을 표현 |
| 논리연산자 | &&, ||, !, &, |, ^, ~ | AND, OR, NOT… |
| 대입연산자 | = | 무변에 값을 좌변에 대입 |
| 기타 | (type) ? 참이면 수행 : 거짓이면 수행; | 형변환, 삼향연산자, instanceof |
1. 산술연산자
- 산술 연산자는 사칙연산자(+, -, *, /)와 나머지 연산자(%)가 있다.
// Exception in thread "main" java.lang.ArithmeticException: / by zero
// System.out.println(12/0);
// int/double
System.out.println(12/0.0); //Infinity
System.out.println(-12/0.0); //-Infinity
int x = 10; // '=' 대입연산자
int y = 3;
System.out.printf("x + y = %d%n", (x + y)); //13
System.out.printf("x - y = %d%n", (x - y)); //7
System.out.printf("x * y = %d%n", (x * y)); //30
System.out.println("x/y= " + (x/y)); //int/int = int(3)
System.out.println("x/y= " + (x/(y*1.0))); //3.333333333333333
System.out.println("x%y= " + (x%y));
2. 비교연산자
- 대소비교 연산자
| 연산자 | 설명 |
| < | 좌변 값이 크면, true 아니면 false |
| > | 좌변 값이 작으면, true 아니면 false |
| < = | 좌변 값이 같거나 크면, true 아니면 false |
| > = | 좌변 값이 같거나 작으면, true 아니면 false |
- 등가비교 연산자
| 연산자 | 설명 |
| == | 두 값이 같으면, true 아니면 false |
| ! = | 두 값이 같지 않으면, true 아니면 false |
System.out.printf("10==10.0f\t\t%b%n", 10==10.0f); //10==10.0f true
System.out.printf("'0'== 0 \t\t%b%n", ('0'== 0)); //'0'== 0 false
System.out.printf("'A'== 65 \t\t%b%n", ('A'== 65)); //'A'== 65 true
System.out.printf("'A'== 'B' \t\t%b%n", 'A'>'B'); //65 > 66 //'A'== 'B' false
System.out.printf("('A' + 1) != 'B'\t%b%n", ('A' + 1) != 'B'); //('A' + 1) != 'B' false
3. 논리 연산자
- &&(AND): 피연산자 양쪽 모두 true이면 true
- ||(OR): 피연산자 어느 한쪽만 true이면 true
- &&(AND) ||(OR) 진리표
| X | Y | X||Y | X&&Y |
| true | true | true | true |
| true | false | true | false |
| false | true | true | false |
| false | false | false | false |
//x는 10보다 크고, 20보다 작다
x>10 && x<20
//10 < x < 20 (수학적 표현)
10<x && x<20
//i는 2의 배수 또는 3의 배수
(i%2==0) || (i%3==0)
//i는 2의 배수 또는 3의 배수지만 6의 배수는 아니다.
((i%2==0) || (i%3==0)) && (i%6!=0) //&&가 ||보다 우선
//문자 ch는 대문자 또는 소문자이다.
('a'<=ch && ch<='z') || ('A'<=ch && ch<='Z')
4. 삼항 연산자
- 삼항 연산자는 조건식, 식1, 식2 모두 세 개의 피연산자를 필요로 하는 연산자
- (제어문의 if~else문 간략형)

//나이에 따라 미성년 여부 판단
int age = 22;
String message = (age>=18) ? "성인":"미성년";
System.out.printf("나이=%d, 성인여부:%s%n", age, message); //나이=22, 성인여부:성인
5. 단항 연산자
- 증가 연산자(++): 피연산자의 값을 1증가 시킨다.
- 감소 연산자(- -): 피연산자의 값을 1감소 시킨다.
| 전위형 | 값이 참조되기 전에 증가시킨다. | j = ++i |
| 후휘형 | 값이 참조된 후에 증가시킨다. | j = i++; |
int i = 12;
int j = 0;
j = i++;//후위 연산자: 할당하고 증가
System.out.printf("i++=%d, j=%d%n", i, j); //i++=13, j=12
//초기화
i = 12;
j = 0;
j = ++i;//전위 연산자: 증가 시키고 j에 할당
System.out.printf("i++=%d, j=%d%n", i, j); //i++=13, j=13
- 부호 연산자: 피연산자의 부호를 반대로 변경한 결과를 반영한다.
int x = -12;
x = +x;
System.out.println("x=" + x); //x=-12
x = -12;
x = -x;
System.out.println("x=" + x); //x=12
6. 기타 연산자
- 대입 연산자 : =
x = y = 3;
- 복합 대입 연산자
| op= | = |
| i+=3 | i = i + 3; |
| i*=3; | i = i * 3; |
| i%=3; | i = i % 3 |
| i<< = 3; | i = i << 3; |
| i&=3; | i = i & 3; |
연산자의 우선순위
- 연산자의 결합규칙: 대부분의 연산은 왼쪽에서 오른쪽으로 수행 ex) 2+4 -5
- 단항 연산자와 대입: 연산자 오른쪽에서 왼쪽 수행 ex) x = y = 3;
- 산술 > 비교 > 논리 > 대입, 대입이 제일 마지막에 수행 된다.
- 단항(1)>이항(2)>삼항(3) 단항 연산의 우선 순위가 이항 연산자보다 높다.
- 단항, 대입 연산자를 제외한 모든 연산자의 진행 방향은 왼쪽에서 오른쪽.

'코딩' 카테고리의 다른 글
| [JAVA] 반복 (0) | 2023.09.23 |
|---|---|
| [JAVA] 조건문 (0) | 2023.09.23 |
| [JAVA] 형 변환 (Casting) 방법 (0) | 2023.09.14 |
| [JAVA] 변수(Variable)와 변수의 타입 (0) | 2023.09.13 |
| [JAVA] 이클립스 (Eclipse) 설치 및 자바 프로젝트 생성 (이클립스 환경설정) (0) | 2023.09.12 |