연산 관련 개념
연산(Operation): 프로그램에서 데이터를 처리하여 결과를 산출하는 것
연산자(Operator): 연산에 사용되는 표시나 기호
- 피연산자(Operand): 연산되는 데이터
- 연산식(Expressions): 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것
연산자 정리표
연산자 종류
|
연산자
|
피연산자 수
|
산출값
|
기능 설명
|
산술
|
+, -, *, /, % |
이항 |
숫자 |
사칙연산 및 나머지 계산 |
부호
|
+, - |
단항 |
숫자 |
음수와 양수의 부호 |
문자열
|
+ |
이항 |
문자열 |
두 문자열을 연결 |
대입
|
=, +=, -=, *=, /=, %=, &=, ^=, |=, <<==, >>==, >>>== |
이항 |
다양 |
우변의 값을 좌변의 변수에 대입 |
증감
|
++, -- |
단항 |
숫자 |
1만큼 증가/감소 |
비교
|
==, !=, >, <, >=, <=, instanceof |
이항 |
boolean |
값의 비교 |
논리
|
!, &, |, &&, || |
단항 이항 |
boolean |
논리적 NOT, AND, OR 연산 |
조건
|
(조건식) ? A : B |
삼항 |
다양 |
조건식에 따라 A또는 B중 하나를 선택 |
비트
|
~, &, |, ^ |
단항 이항 |
숫자 boolean |
비트 NOT, AND, OR, XOR 연산 |
쉬프트
|
>>, <<, >>> |
이항 |
숫자 |
비트를 좌측/우측으로 밀어서 이동 |
연산의 방향과 우선순위
연산자 |
연산방향 |
우선순위 |
증감(++,--), 부호(+,-), 비트(~), 논리(!) |
← |
높음 |
산술(*,/,%) |
→ |
|
산술(+,-) |
→ |
|
쉬프트(<<, >>, >>>) |
→ |
|
비교(<, >, <=, >=, instanceof) |
→ |
|
비교(==, !=) |
→ |
|
논리(&) |
→ |
|
논리(^) |
→ |
|
논리(|) |
→ |
|
논리(&&) |
→ |
|
논리(||) |
→ |
|
조건(?:) |
→ |
|
대입(=, +=, -=, &=, /=, %=, &=, ^=, |=, <<=, >>=, >>>=) |
← |
낮음 |
증감 연산자( ++ , -- )
- 전위형: 피연산자 앞에 위치, 다른 연산보다 증감 먼저 수행 ( int i = 0; ++i )
- 후위형: 피연산자 뒤에 위치, 다른 연산 수행 후 증감 실행 ( int j = 0; j++; )
논리 연산자( &&, ||, &, |, ^, !)
- 일반논리AND연산자, 논리곱(&&): 피연산자 모두 true일 경우 연산 결과 true
- 일반논리OR연산자, 논리합(||): 피연산자 중 하나만 true이면 연산 결과는 true
- 배타적 논리합(^): 피연산자가 하나는 true이고 다른 하나가 false일 경우에만 연산 결과 true
논리 부정 연산자(!), (=not 연산자)
- 참 또는 거짓을 부정한다.
- !true → false
- !false → true
덧셈연산자(+) / 문자열 연결 연산자(+) 비교
- print( 4 + 5 ) => 정수 + 정수 => 9 // 덧셈연산자로 더하기 연산 수행
- print( "4" + 5 ) => 문자열 + 정수 => "45" (문자열) // 문자열 연결 연산자로 4와 5 문자열을 연결
- print( "4" + "5") => 문자열 + 문자열 => "45"(문자열) // 문자열 연결 연산자로 4와 5 문자열을 연결
0으로 나누기 또는 나머지 연산을 수행할 수 없음(오류 발생)
- 실수를 0으로 나누면 무한대(Infinity) 결과값
- 실수를 0으로 나머지 구하기 하면 NaN(Not a Number)결과값
조건연산자
- 형식 => 항1 : 항2 : 항3;
- 항1이 참이면 결과값은 항2
- 항1이 거짓이면 결과값은 항3
'프로그래밍 > Java' 카테고리의 다른 글
마로의 Java(자바) 정리 - 6. 변수(Variable) (457) | 2015.11.09 |
---|---|
마로의 Java(자바) 정리 - 5. 비트 연산자 (1215) | 2015.11.09 |
마로의 Java(자바) 정리 - 3. 자료형 (481) | 2015.10.26 |
마로의 Java(자바) 정리 - 2. Java(자바) 클래스/생성자/함수(메소드) 선언 형식 (476) | 2015.09.30 |
마로의 Java(자바) 정리 - 1. Java(자바)란? (497) | 2015.09.25 |