[Java] Operators
Operator
용어
- 연산 (operation) : 데이터를 처리하여 결과를 산출
- 연산자 (operator) : 연산에 사용되는 표시나 기호 (데이터 처리 기능 수행)
- 피연산자 (Operand) : 연산 되는 데이터
- 연산식 (Expression) : 연산자와 피연산자를 이요, 연산 과정을 기술
연산자 우선순위
우선순위
1항
- 후위 증감
var++ or var--
- 전위 증감
++var or --var
- NOT
!
2항
산술연산
- 곱셈
*
- 나눗셈
/
- 나머지
%
- 덧셈
+
- 뺄셈
-
비트시프트연산
<< >> >>>
비교연산 (관계연산)
- boolean 형의 결과 값을 얻음
- 대소비교
< > <= >=
- 일치여부
== !=
논리연산
- 비트연산
& ^ |
- AND 연산
&&
- OR 연산
||
3항
condition ? trueCase : falseCase
할당(대입)연산자
대입연산자 =
=
: 왼쪽의 변수에 오른쪽의 수식의 값을 대입한다
- L-value에 R-value를 대입
- L-value는 반드시 변수, R-value는 어떠한 수식이라도 가능
산술연산자
+
-
*
/
%
-
사칙연산에 사용되는 연산자
%
: 나누 나머지값을 반환 -
예제
int a = 7;
int b = 3;
// 부호 연산자(+, -)
System.out.println(-a); // -1 * a
// 산술 연산자(+, -, *, /)
System.out.println(a / b); // int / int -> int(나눗셈의 몫)
System.out.println(a % b); // 정수 나눗셈의 나머지
// System.out.println(a / 0); // int / 0 -> Error
System.out.println(7.0 / 0); // Infinity
System.out.println(7.0 / 0 + 100); // Infinity가 포함된 산술식 -> Infinity
// Infinity Check
System.out.println(Double.isInfinite(7.0 / 0));
// Data가 NaN인지 확인
System.out.println(0.0 / 0.0);
System.out.println(Double.isNaN(0.0 / 0.0));
System.out.println(Double.isNaN(7.0 / 0.0));
전위,후위연산자 ++, --
- 전위연산자
++x, --x
- 실행문에서 값이 먼저 증가/감소 적용
- 연산시 x값을 1 증가/감소 시킨 후 연산 수행
int a = 7;
int b = 0;
b = ++a;
System.out.println("b:" + b); // b = 8
System.out.println("a:" + a); // a = 8
- 후위연산자
x++, x--
- 실행문이 끝난 후 증가/감소 적용
- 연산시 연산이 끝난 후 x값을 1증가/감소
int a = 7;
int b = 0;
b = a++;
System.out.println("b:" + b); // b = 7
System.out.println("a:" + a); // a = 8
비교연산 (관계연산)
- 대소비교
<
>
<=
>=
- 일치여부
==
: 일치 여부 (true/false 리턴)!=
일치하지 않음 비교 (true/false 리턴)
논리연산자
리턴타입이 Boolean형 값을 결과로 하는 조건식만을 허용
연산자 | 연산기호 | 사용 예 | 의미 |
---|---|---|---|
AND 연산 | && | x && y | x와 y가 모두 True이면 True, 하나라도 False일 경우 False |
OR 연산 | || | x || y | x와 y가 하나라도 True일 경우 True, 모두 False일 때 False |
NOT 연산 | ! | !x | x의 값을 반전 |
비트연산자
&
(and)|
(or)^
(xor)~
(not)
<<
>>
>>>
- 예제
// int에서만
// 비트 단위의 미세한 제어에 이용
int b1 = 0b11011101;
int mask = 0b10101010;
System.out.println(Integer.toBinaryString(b1));
System.out.println(Integer.toBinaryString(mask));
System.out.println(Integer.toBinaryString(b1 & mask));
System.out.println(Integer.toBinaryString(b1 | mask));
System.out.println(Integer.toBinaryString(~b1));
int val = 1;
System.out.println(Integer.toBinaryString(val));
System.out.println(Integer.toBinaryString(val << 3));
System.out.println(val << 3);
val = 0b1000;
System.out.println(Integer.toBinaryString(val));
System.out.println(Integer.toBinaryString(val >> 2));
- 실행 결과
3항 연산자
: 조건식에 따라 true면 : 앞쪽의 연산식을, false면 : 뒤쪽의 피연산자를 선택
condition ? trueCase : falseCase
- 예제
int a = 10;
// a가 짝수면 짝수, 홀수면 홀수 출력
System.out.println(a + "는 " + (a % 2 == 0 ? "짝수" : "홀수"));
int score = 85;
String message;
// 점수가 90점 이상이면 Good, 50점 미만이면 Fail, 아니면 Pass
System.out.println(message = score >= 90 ? "Good" : (score < 50 ? "Fail" : "Pass"));
System.out.println(message);
- 예제 결과
Author And Source
이 문제에 관하여([Java] Operators), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@98kimjh/Java-Operators저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)