"연산자"의 두 판 사이의 차이
1번째 줄: | 1번째 줄: | ||
'''연산자'''(Operator)는 대부분 기본 자료형의 사칙연산 등의 계산을 위해 사용하는 것으로 기본 자료형을 제외한 참조 자료형은 연산자를 사용할 수 없다. | '''연산자'''(Operator)는 대부분 기본 자료형의 사칙연산 등의 계산을 위해 사용하는 것으로 기본 자료형을 제외한 참조 자료형은 연산자를 사용할 수 없다. | ||
단, 예외로 String 클래스는 + 연산이 가능하다. | 단, 예외로 String 클래스는 + 연산이 가능하다. | ||
− | <ref>, <[https://onsil-thegreenhouse.github.io/programming/java/2017/11/02/java_tutorial_1-4/ 연산자 개념]>, 《Github-Onsil's | + | <ref>, <[https://onsil-thegreenhouse.github.io/programming/java/2017/11/02/java_tutorial_1-4/ 연산자 개념]>, 《Github-Onsil's blog, 2017-11-02</ref> |
주로 어떤 연산을 할지 지정하는 것을 연산자라하고, 연산의 대상이 되는 것을 피연산자라고 한다. | 주로 어떤 연산을 할지 지정하는 것을 연산자라하고, 연산의 대상이 되는 것을 피연산자라고 한다. | ||
연산자는 작업의 종류에 따라서 대입연산자, 산술연산자, 비교연산자, 논리연산자 등으로 나뉜다. | 연산자는 작업의 종류에 따라서 대입연산자, 산술연산자, 비교연산자, 논리연산자 등으로 나뉜다. | ||
13번째 줄: | 13번째 줄: | ||
*'''결합방식''' | *'''결합방식''' | ||
− | 결합방식(처리순서)는 연산자에 따라 2가지로 나뉜다. | + | 결합방식(처리순서)는 같은 순위의 연산자가 하나의 수식에 두 개 이상 존재하는 경우 우선적으로 연산하는 방향을 말하는 것으로 연산자에 따라 2가지로 나뉜다. |
+ | '(),[],산술,시프트,관계,비트,논리,조건,순서'연산자의 경우 왼쪽에서 오른쪽으로 결합하고, '단항,대입'연산자의 경우 오른쪽에서 왼쪽으로 결합한다. | ||
+ | 같은 순위의 연산자가 하나의 수식에 두 개 이상 존재하는 경우 우선적으로 연산하는 방향을 말한다. | ||
<ref name="연산자"></ref> | <ref name="연산자"></ref> | ||
83번째 줄: | 85번째 줄: | ||
<ref name="연산자"></ref> | <ref name="연산자"></ref> | ||
*'''산술 연산자''' | *'''산술 연산자''' | ||
− | 가, 감, 승, 제 등의 산술 계산에 사용되는 연산자로 '+, -, *, /, %, ++, --'가 있다. 산술 연산자는 안에서도 우선 순위가 나뉘는데 증감 연산자→산술 연산자(* / %)→산술 연산자(+ -)순으로 높아진다. | + | 가, 감, 승, 제 등의 산술 계산에 사용되는 연산자로 '+, -, *, /, %, ++, --'가 있다. |
+ | 산술 연산자는 안에서도 우선 순위가 나뉘는데 증감 연산자→산술 연산자(* / %)→산술 연산자(+ -)순으로 높아진다. | ||
산술 연산자 중 '* / %'는 우선순위가 같아 왼쪽에서 오른쪽 방향으로 순서대로 계산한다. | 산술 연산자 중 '* / %'는 우선순위가 같아 왼쪽에서 오른쪽 방향으로 순서대로 계산한다. | ||
+ | 또한, 피연산자의 크기가 4byte보다 작을 경우 4byte(int형)로 변환한 후 연산을 수행한다. | ||
+ | 고려 사항으로는 연산하기 전에 데이터형을 둘 중 더 큰 자료형으로 일치시켜야 하고, 정수와 정수 나눗셈 시 정수로 나와야 하므로 소수는 버려지고 정수만 출력된다. | ||
+ | |||
예) 3 - 7 % 8 + 5''' | 예) 3 - 7 % 8 + 5''' | ||
98번째 줄: | 104번째 줄: | ||
*'''비트 연산자''' | *'''비트 연산자''' | ||
비트별(0,1)로 연산하여 결과를 얻는 연산자로 '&(and) ^( xor) |(or) ~(not) <<(비트 왼쪽 이동) >>(비트 오른쪽 이동)'이 있다. | 비트별(0,1)로 연산하여 결과를 얻는 연산자로 '&(and) ^( xor) |(or) ~(not) <<(비트 왼쪽 이동) >>(비트 오른쪽 이동)'이 있다. | ||
+ | |||
*'''논리 연산자''' | *'''논리 연산자''' | ||
− | 두 개의 논리 값을 연산하여 참 또는 거짓을 결과로 얻는 연산자로 '!(not) &&(and) ||(or)'이 있다. | + | 논리 연산자는 두 개의 논리 값을 연산하여 참 또는 거짓을 결과로 얻는 연산자로 '!(not) &&(and) ||(or)'이 있다. |
*'''대입 연산자''' | *'''대입 연산자''' | ||
116번째 줄: | 123번째 줄: | ||
== 참고 자료 == | == 참고 자료 == | ||
− | *소프트웨어 어휘다지기 - 중등, 〈[https://terms.naver.com/entry.nhn?docId=4383177&cid=59941&categoryId=59941 연산자 개념]〉, 《네이버 지식백과》 | + | *[Java] 연산자(operator), < [https://onsil-thegreenhouse.github.io/programming/java/2017/11/02/java_tutorial_1-4 연산자 개념]/> , 《GitHub-Onsil'blog》 |
− | *2020 정보처리기사 필기, <연산자 종류> , | + | *소프트웨어 어휘다지기 - 중등, 〈[https://terms.naver.com/entry.nhn?docId=4383177&cid=59941&categoryId=59941 연산자 개념 및 예시]〉, 《네이버 지식백과》 |
+ | *2020 정보처리기사 필기, <연산자 종류> , 《길벗》 | ||
== 같이 보기 == | == 같이 보기 == |
2020년 8월 6일 (목) 12:00 판
연산자(Operator)는 대부분 기본 자료형의 사칙연산 등의 계산을 위해 사용하는 것으로 기본 자료형을 제외한 참조 자료형은 연산자를 사용할 수 없다. 단, 예외로 String 클래스는 + 연산이 가능하다. [1] 주로 어떤 연산을 할지 지정하는 것을 연산자라하고, 연산의 대상이 되는 것을 피연산자라고 한다. 연산자는 작업의 종류에 따라서 대입연산자, 산술연산자, 비교연산자, 논리연산자 등으로 나뉜다. [2]
개요
어떤 연산을 할지 지정하는 것을 연산자 연산의 대상이 되는 것을 피연산자라고 한다. 예를 들어, x + y가 있을 때, +는 연산자에 x, y는 피연산자에 해당된다. [2] 논리 부정처럼 피연산자가 한 개만 필요하면 단항 연산자, +처럼 피연산자가 두 개 있으면 이항연산자, 세 개 있으면 삼항 연산자라고 한다. [3]
- 결합방식
결합방식(처리순서)는 같은 순위의 연산자가 하나의 수식에 두 개 이상 존재하는 경우 우선적으로 연산하는 방향을 말하는 것으로 연산자에 따라 2가지로 나뉜다. '(),[],산술,시프트,관계,비트,논리,조건,순서'연산자의 경우 왼쪽에서 오른쪽으로 결합하고, '단항,대입'연산자의 경우 오른쪽에서 왼쪽으로 결합한다. 같은 순위의 연산자가 하나의 수식에 두 개 이상 존재하는 경우 우선적으로 연산하는 방향을 말한다. [3]
- 예) 1+2+3 → 왼쪽에서 오른쪽으로 결합(1+2→+3)
- 예) a=b=c=1 → 오른쪽에서 왼쪽으로 결합(c=1→b=c→a=b)
특징
- 우선순위
하나의 연산식에 여러 개의 연산이 사용되었을 경우 어떤 것을 먼저 처리할지 정하는 것이다. 순서는 단항 연산자→산술 연산자→시프트연산자→관계 연산자→비트 연산자→논리 연산자→조건 연산자→대입 연산자→순서 연산자 순으로 낮아진다. 단, (),[]연산자는 최우선 연산자로 ()는 우선순위 변경을 위해 사용되며, []는 배열의 크기나 첨자를 나타낼 때 사용한다. [3]
연산자 우선순위 대분류 중분류 연산자 결합규칙 단항 연산자 단항 연산자 !(논리 not), ~(비트 not), ++, --, sizeof(기타) ← 이항 연산자 산술 연산자 *, /, %(나머지) → 이항 연산자 시프트 연산자 <<, >>, >>> → 이항 연산자 관계 연산자 <, <=, >, >=, ==, != → 이항 연산자 비트 연산자 &(비트 and), ^(비트 xor), |(비트 or) → 이항 연산자 논리 연산자 &&(논리 and), |두 개(논리 or) → 삼항 연산자 조건 연산자 ?, : → 대입 연산자 대입 연산자 =, +=, -=, *=, %=, /=, >>=, <<= ← 순서 연산자 순서 연산자 , →
종류
연산자의 종류는 산술연산자, 관계연산자, 비트연산자, 논리연산자, 대입연산자, 조건연산자, 기타 연산자로 나뉜다. [3]
- 산술 연산자
가, 감, 승, 제 등의 산술 계산에 사용되는 연산자로 '+, -, *, /, %, ++, --'가 있다. 산술 연산자는 안에서도 우선 순위가 나뉘는데 증감 연산자→산술 연산자(* / %)→산술 연산자(+ -)순으로 높아진다. 산술 연산자 중 '* / %'는 우선순위가 같아 왼쪽에서 오른쪽 방향으로 순서대로 계산한다. 또한, 피연산자의 크기가 4byte보다 작을 경우 4byte(int형)로 변환한 후 연산을 수행한다. 고려 사항으로는 연산하기 전에 데이터형을 둘 중 더 큰 자료형으로 일치시켜야 하고, 정수와 정수 나눗셈 시 정수로 나와야 하므로 소수는 버려지고 정수만 출력된다.
예) 3 - 7 % 8 + 5
연산자 우선 순위에 따라 '7 % 8'→'3 -'→'+ 5'를 하여 답은 1이 된다.
전치: 변수 앞에 증감 연산자가 오는 형태로 먼저 변수의 값을 증감시킨 후 변수를 연산에 사용한다.(++a, --a) 후치: 변수 뒤에 증감 연산자가 오는 형태로 먼저 변소를 연산에 사용한 후 변수의 값을 증감시킨다.(a++, a--)
- 관계 연산자
두 수의 관계를 비교하여 참 또는 거짓을 결과로 얻는 연산자로 '== != > >= < <='가 있다. 왼쪽을 기준으로 크다 또는 크거나 같다로 해석한다.
- 비트 연산자
비트별(0,1)로 연산하여 결과를 얻는 연산자로 '&(and) ^( xor) |(or) ~(not) <<(비트 왼쪽 이동) >>(비트 오른쪽 이동)'이 있다.
- 논리 연산자
논리 연산자는 두 개의 논리 값을 연산하여 참 또는 거짓을 결과로 얻는 연산자로 '!(not) &&(and) ||(or)'이 있다.
- 대입 연산자
연산 후 결과를 대입하는 연산식을 간략하게 입력할 수 있도록 대입 연산자를 제공하는 것으로 '+= -= *= /= %= <<= >>='가 있다.
- 조건 연산자
조건에 따라 서로 다른 수식을 수행하는 것이다.
예) 조건 ? 수식1 : 수식2; -> '조건'의 수식이 참이면 '수식1'을 거짓이면 '수식2'를 실행
- 기타 연산자
sizeof ,(콤마) (자료형)등이 있다.
각주
참고 자료
- [Java] 연산자(operator), < 연산자 개념/> , 《GitHub-Onsil'blog》
- 소프트웨어 어휘다지기 - 중등, 〈연산자 개념 및 예시〉, 《네이버 지식백과》
- 2020 정보처리기사 필기, <연산자 종류> , 《길벗》
같이 보기